详解vue 数组和对象渲染问题
最近项目有点忙碌,遇到好多问题都没有总结(╥﹏╥),在开发过程中,取vuex中的数组渲染完成之后,再次修改数组的值,数据更新了,但是视图并没有更新。以为是数组更新的问题,后来又以为是因为vuex导致的问题.最后强制刷新组件解决了问题,但是还没有找到根本问题的所在...
数组更新检测
- 在vue中使用数组的push()、pop()、shift()、unshift()、splice()、sort()、reverse()、filter()、concat()方法时,改变数组的同时可以触发视图的变化。
- 注意:有两种情况vue无法检测到变动的数组,分别是:
(1)直接操作数组的长度;
//Vue.set this.$set(arr,indexOfItem,newValue) //Array.prototype.splice this.arr.splice(indexOfItem,1,newValue)
(2)利用索引直接设置一个项时,例如:this.arr[indexOfItem]=newValue
this.arr.splice(newLength)
demo如下:
{{item.name}}