<div id="app">
<ul>
<li v-for="list in lists">{{list.name}}</li>
</ul>
<button @click=change>change</button>
</div>
<script>
new Vue({
el: "#app",
data: function () {
return {
lists:[
{name:1},
{name:2},
{name:3},
{name:4},
{name:5},
{name:6},
{name:7}
]
}
},
methods:{
change:function(){
this.lists.forEach(function(item,index){
item.name = 6666;
});
}
}
});
</script>
我这么写是可以生效的,可是我在项目中这么写的时候,经常碰到数据没更新,或者是第一次更新了第二次不更新,搞得我纠结死了。
我想问下一般视图没有更新是什么原因导致的(除了vue官网说的关于数组的那两个)
我刚才看了下我项目里的一个例子:在父元素里使用this.$refs调用了子元素的一个方法,然后这个方法改变了子元素中的数据。第一次视图更新了,然后就再也不更新。我在vue devtools看了下,子元素的数据确实是更新了的,但视图就是不更新,我使用的方法不对?
建议安装vue dev tool 然后查看一下组件的属性值是否正确