Vue中的$forceUpdate有强制刷新的意思,但是这个针对于深层次结构数据,数据通过赋值进行了更新,但是vue监听不到。
深结构数据
对于普通类型的数据来说,我们不需要操心数据绑定,Vue的内部机制已经帮助我们监听更新,但是对于一个复杂对象来说,例如数组对象、对象数组等,我们对其某个元素增加属性,vue就监听不到了。对照着vue文档规范,我们应该使用 $set来进行数据的操作或者初始化,这样的话vue内部是能够监听到的。
如果不想用 $set 来进行操作,我们就需要使用 $forceUpdate来进行强制刷新,因为你修改了数据,dom层改变,但视图层并没有改变,说明数据本身是修改的,但是vue并没有监听到,使用 $forceUpdate就相当于按照最新数据给重新渲染了一下,强制视图更新。
vue强制更新$forceUpdate()
添加this.$forceUpdate();进行强制渲染,效果实现。搜索资料得出结果:因为数据层次太多,render函数没有自动更新,需手动强制刷新。
调用强制更新方法this.$forceUpdate()会更新视图和数据,触发updated生命周期。
原文链接:https://blog.csdn.net/rememberyf/article/details/113915471