cin*_*l45 2 javascript vue.js vuejs2
我正在尝试使用Vue创建一个基本的选项卡式导航系统.我正在捕获用户的导航选择并调用一个更改某个数据的函数.该数据最终将决定哪个选项卡应该是活动的.到目前为止我有这个:
HTML
<div id="app">
<div id="nav">
<a href='#' class="tab" v-on:click="makeActive('homeActive')">Home</a>
<a href='#' class="tab" v-on:click="makeActive('infoActive')">Info</a>
</div>
<div class="content">
<div class="boxes" id="home" v-bind:class="choice">
</div>
<div class="boxes" id="info" v-bind:class="choice">
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
Vue公司
new Vue({
el: '#app',
data: {
choice: 'homeActive' // Home is chosen by default
},
methods: {
makeActive: function(val) {
this.choice = val;
}
}
});
Run Code Online (Sandbox Code Playgroud)
目前,如果用户点击Home链接,home和info div都会获得homeActive类,这是因为我无法通过这个基本逻辑使用我的方法返回两个语句:
启用tab1并禁用tab2 || 启用选项卡2并禁用tab1
我正在尝试不同的方法但由于将我的内容绑定到单个类,因此我只能通过调用方法影响单个状态.
关于如何使用Vue的任何建议?
jes*_*vin 10
我通常解决这个问题的方法是添加另一个这样的函数isActiveTab......
new Vue({
el: '#app',
data: {
choice: 'homeActive' // Home is chosen by default
},
methods: {
makeActive: function(val) {
this.choice = val;
},
isActiveTab: function(val) {
return this.choice === val;
}
}
});
Run Code Online (Sandbox Code Playgroud)
那么在你看来......
<div id="app">
<div id="nav">
<a href='#' class="tab" v-on:click="makeActive('homeActive')">Home</a>
<a href='#' class="tab" v-on:click="makeActive('infoActive')">Info</a>
</div>
<div class="content">
<div class="boxes" id="home" v-show="isActiveTab('homeActive')">
</div>
<div class="boxes" id="info" v-show="isActiveTab('infoActive')">
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4292 次 |
| 最近记录: |