使用vue开发项目的时候,几乎都会遇到一个问题,数据改变了,但是页面没有渲染。这种情况下一般都是数组和json才会发生。
在初始化的时候,如果是一个数组,使用push方法进行赋值,数据改变了,页面不会重新渲染,因为数组push的时候没有触发render函数。这时候可以使用中间数组的形式进行赋值,就是直接this.list = data,或者是直接使用vue提供的set方法。
在局部改变摸个json的字段的时候,也有可能数据不会渲染,那是因为json层次的问题,vue没办法监听到那么深,json也可以用set方法触发。
当我们请求数据,得到了数据,页面渲染成功了,但是会报错,报的错还是这个数据的某个字段未定义。那是因为vue在挂载的时候已经先渲染了一遍,第一遍的时候数据确实没有,等你请求到了数据,vue会重新渲染,所以页面渲染出了数据,但是报错了。这时候可以在标签里面用v-if这个数据,表示在没有数据的时候隐藏了,等到有了数据才去触发重新渲染,这样就不会报错了。
要是以上两个方法还是不能使页面重新渲染,有人说是强制性触发render函数,this.$forceUpdate();本人使用set方法能解决暂时遇到的这个问题,所以这个方法待测试。
欢迎关注Coding个人笔记 公众号
网友评论