在导航选项卡上切换 is-active css 类 [英] Toggle is-active css classes on navigation tabs
问题描述
我对 Vue 很陌生,所以我正在构建一个测试项目来试用它.我有一些标签:
<ul><li class="is-active"><a>第一个标签</a></li><li><a>第二个标签</a></li><li><a>第三个标签</a></li>
现在,使用 Vue 我想有一个方法从所有 li
中删除 is-active
类并设置 is-active
到 li
点击.
我已经涉足了一点,但我找不到任何直接的方法来解决它.我看到 Vue 有很好的条件渲染解决方案,但我需要先修复这部分.
我应该去哪里寻找,像这样的问题在 Vue 中通常是如何解决的?您是否只是遍历 ul
的所有子级以删除该类,然后根据 li
的索引设置 is-active
?>
有十几种方法可以做到这一点.
这是一个快速的.
console.clear()新的 Vue({el: "#app",数据:{活动标签:1}})
.is-active {颜色:蓝色}
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.2/vue.js"></script><div id="应用程序"><div class="tabs"><ul><li :class="{'is-active': activeTab === 1}" @click="activeTab = 1"><a>第一个标签</a></li><li :class="{'is-active': activeTab === 2}" @click="activeTab = 2"><a>第二个标签</a></li><li :class="{'is-active': activeTab === 3}" @click="activeTab = 3"><a>第三个标签</a></li>
Vue 是数据驱动的.您通常希望基于数据驱动 HTML.这里class
是由activeTab
驱动,activeTab
是通过点击列表元素设置的.
在某些时候,您的标签可能是数据而不是硬编码.然后你的代码最终看起来像这样.
console.clear()const tabs = [{text: "first tab"}, {text: "second tab"}, {text: "third tab"}]新的 Vue({el: "#app",数据:{活动标签:标签[0],标签}})
.is-active {颜色:蓝色}
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.2/vue.js"></script><div id="应用程序"><div class="tabs"><ul><li v-for="标签中的标签":class="{'is-active': activeTab === tab}"@click="activeTab = tab"><a>{{tab.text}}</a>