vue 里的 style 能加入判断吗?

如何判断editableCheckNum为0时启用opacity: 0.5

<div :style="{!editableCheckNum:'opacity: 0.5'}">555</div>

new Vue({
    el: "#app",
    data: {
        editableCheckNum: 0
    }
})
阅读 28.8k
4 个回答

首先,你需要对Vue的条件渲染有个更深入的了解。
有三种办法可以解决你的问题:

一:使用三元表达式

<div :style="{ 'opacity': !editableCheckNum ? 0.5 : 1 }">555</div>

二:使用计算属性

<div :style="computeStyle">555</div>

computed: {
  computeStyle() {
    return { opacity: !this.editableCheckNum ? 0.5 : 1 }
  }
}

三:使用class

<div :class="{ 'this-div-class': !this.editableCheckNum }">555</div>

.this-div-class {
  opacity: .5
}

你可以选择计算属性

<div id='app' :style="diaphaneity">555</div>

new Vue({
  el: "#app",
  data: {
      editableCheckNum: 0
  },
  computed: {
    // a computed getter
    diaphaneity: function () {
        // 若为0
        if(!this.editableCheckNum) {
            // 50%透明度
            return 'opacity: 0.5';
        }
        // 否则不添加样式
        return '';
    }
  }
})

<div :style="{'opacity: opacity'}">555</div>
注:我觉得这样写更像vue,是有就渲染,没有就不渲染。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题