vue更改对象数据不刷新,vue数据更新机制
本文主要介绍了Vue对象和数据的强制更新方法,具有很好的参考价值。希望对你有帮助。如有错误或不足之处,请不吝赐教。
目录
对象和数据的强制更新数组更新数据的强制更新和视图的强制更新对象类型数组类型异步类型强制更新
对象和数据的强制更新
数组更新
以下支持自动更新
Push() //向后添加pop()//删除最后一个shift() //删除第一个unshift() //将元素splice()添加到第一个/Add/delete元素sort()到指定位置//用就地算法对数组的元素进行排序reverse() //反转数组中元素的位置。请注意,该表单修改了数据
强制更新
这个。$set(数组,下标,修改后的值)
这个。$set(this.dataArr,1,{})
对象更新
Vue无法检测对象属性的添加或删除:
强制更新
这个。$set(this.obj, age ,27)
参考链接
更新数据并强制更新视图
在开发过程中,有时会发现数据变化后视图没有更新。那么下面是一些常见的例子和解决方法。
对象类型
当对象是引用类型时,vue可能无法对其进行监控,所以当我们创建一个新对象并将其赋给oldObj字段时,它直接更改其指向地址====,对象和数组都可以使用:
这个。$set(this, oldArray ,new array);
这个。$set(this, oldObj ,new obj);
这个。$set(this.some.name, b ,2)
数组类型
这些不会改变原来的数组,但总是返回一个新的数组。使用非突变方法时,可以用新数组替换旧数组。
Push()、pop()、shift()、unshift()、split()、sort()、reverse()可以通过vue、filter()、concat()、splice()进行检测。
vue不能检测以下变动的数组:
当您使用索引直接设置项目时,vm.items[indexOfItem]=newValue
修改数组长度时,例如:vm.items.length=newLength
异步类型
可以在数据更改后立即使用。
Vue.nextTick(回调)
这样,回调函数将在DOM更新完成后被调用。
强制更新
这个。$forceUpdate(),强制视图更新。
VU多层循环,动态改变数据后渲染缓慢或不渲染。
比如v-for中数据层次太多,修改的数据发生了变化,页面没有重新渲染,需要手动刷新。
以上个人经历,希望能给大家一个参考,也希望大家多多支持我们。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。