问题修改:
<span v-for="item in testComputed" :class="{active: item.flag}" @click="testClick(item)"></span>
data: {
testData: [{a:1},{b:1},{n:1},{d:1},]
},
computed: {
testComputed: function(){
return this.testData;
}
},
methods: {
testClick :function(item) {
this.testData.forEach(ele => {
ele.flag = false;
});
item.flag = true;
//对数组操作,渲染
this.testData.push('111');//没有这一步,这不会触发计算属性对应方法
},
}
在利用计算属性testComputed来渲染的前提下,当触发testClick方法后,testComputed是我想要的数据,页面没有开始新的渲染,请问该怎么触发以至于渲染?
计算属性就是通过其他数据的变化而变化, 而在你这里其他数据指的是this.testData, 所以你testClick()里面的逻辑应该是改变this.testData的值, 从而让计算属性自己跟着变化