【发布时间】:2019-06-27 06:21:28
【问题描述】:
当数据改变时,Vue 不会重新渲染绑定的类
我用默认值声明数据'isLoading'并绑定在html标签中,还声明了更改数据的方法。
请看下面的代码!
风格
.is-red{
background: red;
}
.is-blue{
background: blue;
}
脚本
export default {
created() {
this.isLoading = true;
},
mounted() {
},
data() {
return {
isloading: true
};
},
methods: {
changeColor() {
this.isLoading = !this.isLoading;
console.log(this.isLoading);
}
}
}
html
<h1 v-bind:class="{'is-blue': isLoading, 'is-red': !isLoading }">hello</h1>
<button @click="changeColor">toggle</button>
我可以在控制台日志中看到“真”和“假”之间的数据切换。但是 DOM 没有任何变化。
有什么问题?
【问题讨论】:
-
所以你的背景总是蓝色的?您可以尝试不使用单引号吗:
<h1 v-bind:class="{is-blue: isLoading, is-red: !isLoading }">hello</h1> -
@SimonThiel 是的,即使值发生变化,它也总是蓝色的。而且没有引号也不能工作:'(
标签: vue.js dynamic data-binding