Vue JS 为组件切换 类 的方法
Vue JS way to toggle classes for Component
我已经尝试了几种方法来做到这一点,但似乎没有用。 Returns activeClass 未定义。并且在 Vue 中使用普通 JS 的 classList 也 returns undefined。似乎无法在提供的文档中确定这一点。
这是我得到的样板。
let attributes = {
activeClass: 'tab--active'
}
Vue.component('insurance-menu', {
template: `
<ul id="tabs">
<li><a class="tab" v-bind:class="{activeClass}" href="#">Link</a></li>
<li><a class="tab" v-bind:class="{activeClass}" href="#">Link</a></li>
<li><a class="tab" v-bind:class="{activeClass}" href="#">Link</a></li>
<li><a class="tab" v-bind:class="{activeClass}" href="#">Link</a></li>
</ul>`,
data: function() {
return attributes
},
methods: {
}
});
let tabs = new Vue({
el: '#menu-container'
});
使用数组而不是对象来 return 你的值:
<a class="tab" v-bind:class="[activeClass]">
你可以像这样让你的代码更干净:
<a :class="['tab', activeClass]">
您可以使用本地数据在您的视图中添加某个 class,如下所示:
<div v-bind:class="{ active: isActive }"></div>
关于你的 js:
data: {
isActive: true,
hasError: false
}
FYI you can use
just :class (without the v-bind) and it will be perfect aswell.
如果 isActive
属性 returns true
[,该代码会将 'active' class 添加到 div
Source: Docs and personal usage ( https://vuejs.org/guide/class-and-style.html#Object-Syntax )
我已经尝试了几种方法来做到这一点,但似乎没有用。 Returns activeClass 未定义。并且在 Vue 中使用普通 JS 的 classList 也 returns undefined。似乎无法在提供的文档中确定这一点。
这是我得到的样板。
let attributes = {
activeClass: 'tab--active'
}
Vue.component('insurance-menu', {
template: `
<ul id="tabs">
<li><a class="tab" v-bind:class="{activeClass}" href="#">Link</a></li>
<li><a class="tab" v-bind:class="{activeClass}" href="#">Link</a></li>
<li><a class="tab" v-bind:class="{activeClass}" href="#">Link</a></li>
<li><a class="tab" v-bind:class="{activeClass}" href="#">Link</a></li>
</ul>`,
data: function() {
return attributes
},
methods: {
}
});
let tabs = new Vue({
el: '#menu-container'
});
使用数组而不是对象来 return 你的值:
<a class="tab" v-bind:class="[activeClass]">
你可以像这样让你的代码更干净:
<a :class="['tab', activeClass]">
您可以使用本地数据在您的视图中添加某个 class,如下所示:
<div v-bind:class="{ active: isActive }"></div>
关于你的 js:
data: {
isActive: true,
hasError: false
}
FYI you can use just :class (without the v-bind) and it will be perfect aswell.
如果 isActive
属性 returns true
[,该代码会将 'active' class 添加到 div
Source: Docs and personal usage ( https://vuejs.org/guide/class-and-style.html#Object-Syntax )