你可以用一个对象作为映射表来存储哪些是展开的项目。每一项都有唯一id的吧?
<template>
<div>
<div
v-for="data of dataList"
:class="expandMap[data.id] ? 'expand' : 'collapse'"
:key="data.id">
{{ data.content }}
</div>
</div>
</template>
export default {
data () {
return {
dataList: [],
expandMap: {}
}
},
methods: {
expand (data) {
this.$set(this.expandMap, data.id, 1)
},
collapse (data) {
this.$delete(this.expandMap. data.id)
}
}
}
.collapse {
max-height: 300px;
overflow: hidden;
}
.expand {
max-height: none;
}
展开/收起按钮就很简单了
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…