vue中三元运算符的理解问题?


:class="{'cur':curId===1}"
如何理解上面这句呢?
按我的理解应该按照如下写为才对,不过经尝试会报错
:class="{curId===0?'cur':''}"

阅读 3.2k
3 个回答

不是三元运算符吧,大括号里面应该是普通的json。'cur'是json的属性,如果值为true的话,就把属性名cur作为class添加到元素的class。

:class后面不一定是运算符,也可以是json。

上面是json格式的。
如果要用三元运算符是这种情况

<div :class="[curId===0 ? 'cur': '']"></div

vue的样式class有两种使用方式

数组语法 (用三元表达式)

<div v-bind:class="[isActive ? activeClass : '', errorClass]"></div>
data: {
  isActive: true,
  activeClass: 'active',
  errorClass: 'text-danger'
}

你指的应该是这种吧

数组语法2

<div v-bind:class="[activeClass, errorClass]"></div>
data: {
  activeClass: 'active',
  errorClass: 'text-danger'
}

对象语法

<div
  class="static"
  v-bind:class="{ active: isActive, 'text-danger': hasError }"
></div>
data: {
  isActive: true,
  hasError: false
}

对象语法2

<div v-bind:class="classObject"></div>
data: {
  classObject: {
    active: true,
    'text-danger': false
  }
}

对象语法和数组语法混合

<div v-bind:class="[{ active: isActive }, errorClass]"></div>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题