假设我有一个清单。
<div>
<ul>
<li>Item1</li>
<li>Item2</li>
<li>Item3</li>
</ul>
</div>
我只希望Item 1之后的每一项在用户单击按钮时都可见。我可以通过创建一个名为showItem的布尔值,将其设置为false,然后在一个方法中创建一个单击事件将其设置为true来轻松实现这一点。
<div @click="showItemBtn">
<ul>
<li>Item1</li>
<li v-if="showItem">Item2</li>
<li v-if="showItem">Item3</li>
</ul>
</div>
method: {
showItemBtn() {
this.showItem = true
}
}
但是,是否有更简洁的方法来实现这一点,这样我就不必向Item 1之后的每一项添加v-if语句?
3条答案
按热度按时间ni65a41a1#
我会添加一个
v-for
逻辑到items
中,它带有一个响应bool值,并在模板中添加了click逻辑。这里你不需要在Vue逻辑中使用click方法。5cg8jx4n2#
您可以对项目使用v-for:
41zrol4v3#
将这些元素 Package 到
<template>
元素中,并仅对<template>
使用一次v-if
指令。如果循环是可能的,你也可以尝试下面的方法。我用键作为一个唯一的id来演示,你可以使用任何唯一的。
一个二个一个一个