切换Vue 3中v-for循环中按钮的活动状态
P粉046878197
2023-08-27 09:44:54
<p>我正在Vue 3中创建一个过滤器头部,在其中你可以选择一个类别进行查看,因此你可以点击切换过滤器的开关,如果你点击另一个类别,它将取消选择之前的活动类别,一次只能有一个或没有活动类别。</p>
<p>我找到了一些示例,比如这个jsfiddle,它没有可切换的按钮(再次点击取消选择)并且没有使用v-for循环。我相当有信心可以将其转换为v-for循环,但我不知道如何轻松地进行切换和一次只能有一个活动类别的操作。</p>
<p>这是我的基本代码:</p>
<pre class="brush:html;toolbar:false;"><button
v-for="category in contentCategories"
@click=""
class="filter-button"
>
{{ category }}
</button>
</pre>
<pre class="brush:js;toolbar:false;">const contentCategories = ["category 1", "category 2", "category 3"];
let list = contentStore.resources;
const activeCategory = "";
const filteredList = list
.filter((e) => e.category === activeCategory)
.map((e) => {
return e;
});
</pre>
<p>我认为我需要的行为是将活动类别存储在<code>activeCategory</code>字符串中,并将活动标签应用于相应的按钮,然后能够如果再次点击活动按钮,则移除该<code>activeCategory</code>,或者如果点击了不同的按钮,则更改<code>activeCategory</code>。</p>
<p>如果这是一个简单的解决方案,我很抱歉,因为我对Vue非常陌生。谢谢!</p>
使用组合 API
使用额外的引用进行跟踪的简单解决方案
如果您想要实现多个选择能力,则跟踪类别活动