在vue开发的时候最常遇到的问题就是我们通过methodsethods里面的方法改变了data里面数据的值,我们发现在js里面这个数据已经改变了,但页面渲染数据时却还是之前的状态,这个问题最常见的解决方案:

方案一:深浅拷贝数据赋值时发生了问题

深浅拷贝不多讲了,不懂得可以去看下面这篇文章或者自己先去学习了解一下:JavaScript深浅拷贝
最简单的例子
let arr = this.dataList
js逻辑处理完arr后在this.dataList = arr给dataList赋值;
这样虽然确实改变了this.dataList但这却是浅拷贝,解决方法也很简单,使用深拷贝就行,最常用的就是JSON转化,JSON.stringify,和JSON.parse实现,第二个…扩展运算符,let arr = […this.dataList],不会用的还是看上面的链接文章。

方案二:赋值成功但vue底层没有检测到

解决方法,赋值的时候用vue里面的方法赋值,this.$set解决,不会的看下面文章:vue.set

方案三:computed解决

如果上面两个方法都不能解决,可以使用计算属性解决,这个只要你在页面渲染了,值发生改变页面立即会刷新,不会的去vue官方文档学学
好了,希望可以帮助到你!end~~~~~

Logo

前往低代码交流专区

更多推荐