Vue中的li收缩,是指在列表中的某些项可以点击收缩或展开,以便更好地组织和展示数据。
如何实现这种收缩功能呢?下面是一个使用Vue的示例代码:
<ul> <li v-for="item in items"> <div v-on:click="showBox(item)"> {{ item.title }} </div> <div v-show="activeBox === item"> {{ item.content }} </div> </li> </ul>
在这个代码中,我们使用v-on指令为每个列表项的标题绑定了一个点击事件,并将当前点击的项传入showBox函数。showBox函数会设置一个activeBox变量,以便在模板中根据activeBox的值来显示或隐藏项的内容。
接下来,我们需要在Vue实例中定义showBox函数和变量:
var app = new Vue({ el: '#app', data: { items: [ { title: 'Item 1', content: 'Content for item 1' }, { title: 'Item 2', content: 'Content for item 2' }, { title: 'Item 3', content: 'Content for item 3' } ], activeBox: null }, methods: { showBox: function(item) { if (this.activeBox === item) { this.activeBox = null; } else { this.activeBox = item; } } } })
这个示例代码演示了如何使用Vue实现li收缩功能。我们将每个列表项的标题绑定了一个点击事件,并通过activeBox变量来控制项内容的显示和隐藏。这种方式不仅需要较少的代码,也极大地降低了模板中的逻辑。