vue不响应情况
1.数组的length不响应,举个栗子:
<body>
<div id="app">
<ul>
<li v-for="item in todos" :key="item.id">
{{item.task}}
</li>
</ul>
<button @click="clearTodos">清空事项列表</button>
</div>
</body>
此处结果是视图界面没有发生变化,因为数组 的length属性不响应,在浏览器中查看vue的root时,会发现,root中的数据发生变化,但页面显示依旧不变。
2.简易数组下标不响应,举个栗子:
<body>
<div id="app">
<ul>
<li v-for="item in arr">
{{item}}
</li>
</ul>
<button @click="clearTodos">修改简易数组第一个</button>
</div>
</body>
这样的话,和上面那个栗子的结果是一样的,root数据更改,但是页面的内容不更改。解决办法就是把methods中的changeTask方法中的修改数据方法换成用set做:
Vue.set(this.arr,'0','修改内容')
或者 (Vue.set===this.$set)
this.$set(this.arr, '0', '修改内容')
3.虽然简易数组不响应,但是复杂数组用下标还是会响应的,再举个栗子:
<body>
<div id="app">
<ul>
<li v-for="item in arr" :key="item.id">
{{item}}
</li>
</ul>
<button @click="clearTodos">
修改简易数组第一个
</button>
</div>
</body>
此时,利用下标处理数据是会做响应的。