vue 视图不更新

$nextTick


image.png


image.png

根据上面的例子可以看出,在方法里直接打印的话, 由于dom元素还没有更新, 因此打印出来的还是未改变之前的值,而通过this.$nextTick()获取到的值为dom更新之后的值

this.$set的用法

data中数据,都是响应式。也就是说,如果操作data中的数据,视图会实时更新;

但在实际开发中,遇到过一个坑:若data中数据类型较为复杂,方法methods中改变对象的属性,视图也就是页面并不会改变

原因是vue监听不到数据类型特别复杂的属性。

可以使用this.$set()来进行强制更新,进而解决问题

对象操作:

三个参数:this.$set("改变的对象","改变的对象属性","值")

数组操作:

三个参数:this.$set("数组","下标","值")






参考:https://www.jianshu.com/p/5fe073e36baf
参考:http://www.mamicode.com/info-detail-3063951.html
参考:https://www.cnblogs.com/lanshu123/p/11636377.html

监听参考:https://www.cnblogs.com/yesu/p/9546458.html

vue多层循环,动态改变数据后渲染的很慢或者不渲染
可在动态改变数据的方法,第一行加上

this.$forceUpdate();

在使用Vue框架开发时,在函数中改变了页面中的某个值,在函数中查看是修改成功了,但在页面中没有及时刷新改变后的值,我是在使用多层v-for嵌套时出现这种问题的,

解决方法:运用 this.$forceUpdate()强制刷新

你可能感兴趣的:(vue 视图不更新)