vue官网里面有一个案例,https://cn.vuejs.org/examples/#attribute-bindings
其中 color.value = color.value === 'green' ? 'blue' : 'green' 这个语句我看不明白,为什么会有2个color.value了,谁能解释一下?
对于问题中的代码,它是一个 Vue.js 中针对属性绑定的一个案例,该案例使用的是指令 v-bind,它可以简写成 ':'。
在该案例中,'color.value'是一个属性,它绑定了一个变量'value'。当点击toggle按钮时,该变量会改为'green'或'blue'。该代码中使用了三目运算符来实现这一逻辑:如果'value'的值是绿色('green'),则将它改为蓝色('blue');如果'value'的值是蓝色('blue'),则将它改为绿色('green')。
具体的代码如下:
<body>
<div id="app">
<div
v-bind:style="{ backgroundColor: color.value }"
class="demo"
v-on:click="changeColor()"
>
{{ color.value }}
</div>
<button v-on:click="changeColor()">Toggle color</button>
</div>
<script>
var vm = new Vue({
el: "#app",
data: {
color: {
value: "green",
},
},
methods: {
changeColor() {
this.color.value = this.color.value === "green" ? "blue" : "green";
},
},
});
</script>
</body>
在该代码中,我们可以看到 v-bind:style 和 v-on:click 指令,分别用来绑定样式和事件。同时,我们也可以看到 changeColor() 方法,用来改变 'color.value' 属性的值,以实现改变背景颜色的功能。
三元啊 判断color.value 是否全等于 'green' ,如果全等 color.value的值为 'blue' ,否则就等于 'green'