使用三目运算符绑定样式

本来以为使用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 ,在重新渲染的时候,函数总会重新调用执行。


miomiomio
147 声望5 粉丝

人生昧履,砥砺而行