之前也看了很多关于 $forceUpdate() 的问题,其实主要是表达的就是对于数据更新但是视图不更新的问题来进行解决,可以调用这个来实现视图的强制渲染
最近做项目发现了 $forceUpdate() 主要适应的场景。
我的data里面声明了一个对象basicInfo,最开始basicInfo里面并没有name这个属性,后期我通过某种操作可能会给basicInfo增加name这个属性,并且视图需要跟着更新,但是如果我们直接赋值加上,视图是无法跟着改变的,这主要是因为,Vue.js 不能检测到对象属性的添加或删除。
这个时候就用到了$forceUpdate() 。
this.basicInfo.name="自定义诊断"
this.$forceUpdate()
最后:
其实$forceUpdate() 只有对一层的对象是起作用的,对于数组里面的每一条数据增加一个属性,然后需要进行视图的更新是不起作用的。对于这个问题可以看我的上一个文章,针对数组的更新来解决视图不更新的问题。