背景:在vue开发中会遇到data数据更改后view试图不会进行响应式更新的情况
以下4种情况不触发vue响应式更新!!
不能检测到的数组变动是:
1、当利用索引直接设置一个项时,例如:vm.items[indexOfItem] = newValue;
2、当修改数组的长度时,例如:vm.items.length = newLength;
不能检测到的对象变动是:
3、向响应式对象添加属性;
4、向响应式对象删除属性;
解决方法:
数组
arry[index]=xxx;//无效 不触发
改为
this.$set(arry, index, xxx);
对象解决方法
let that=this,obj1,newObj;
obj1={sex:"男"};
newObj=Object.assign(that.oneTeacher,obj1); //无效,并未替换原有对象
this.$set(obj1,'sex','女')
or
that.oneTeacher=Object.assign({},that.oneTeacher,obj1);