使用三目运算符绑定样式
本来以为使用vue模版写法,在绑定单个样式,也就是一个class类名的时候可以直接书写,就像这样
<div id="app">
<div v-bind:class="{ isActive ? 'active': 'open'}"></div>
</div>
<script>
new Vue({
el: '#app',
data: {
isActive: true
}
})
</script>
结果运行出来是错误的,找了半天原因,才发现写法应该是下面这种
<div v-bind:class="[ isActive ? 'active': 'open']"></div>
这样才对嘛
或者这样
<div v-bind:class="isActive ? 'active': 'open'"></div>
也可以这样
<div :class="isActive ? 'active': 'open'"></div>
最后
Vue.js 将绑定表达式限制为一个表达式。如果需要多于一个表达式的逻辑,应当使用计算属性。也就是computed。
computed和method效果上都是一样的,但是 computed 是基于vue的依赖缓存,只有相关依赖发生改变时才会重新取值。而使用 methods ,在重新渲染的时候,函数总会重新调用执行。