修改数据页面不更新的原因和解决方案

本文探讨了Vue应用中数据修改后页面不更新的问题,包括对象属性和数组变化不触发视图更新的原因,并提出了解决方案,如使用Vue.set()、数组变异方法、创建新对象以及使用watch监听外部变量变化等。
摘要由CSDN通过智能技术生成

修改数据页面不更新的原因

当vue中data里声明或者已经赋值过的对象、数组时,向对象中添加新的属性,如果更新此属性的值,页面不会更新视图。

举个例子:当我点击按钮想要改变message中的值时

在这里插入图片描述
此时当我点击按钮,页面并不会发生改变。

官方定义:如果在实例创建之后添加新的属性到实例上,它不会触发视图更新。 
Vue官方文档给我们提供了两种方法:Vue.set()和this.$set()

两种方法作用一样,参数也是一致的。

区别:Vue.set 可以设置实例创建之后添加的属性,而this.$set只能设置实例创建后存在的属性

在这里插入图片描述

修改数据页面不更新的解决方案

1.数组数据改变时,使用某些方法操作数组,数据变了,但是视图并没改变。(页面没有监测到数据改变)
解决办法:

使用下面这些方法操作数组,其数据会被vue监测
push()、pop()、shift()、unshift()、splice()、sort()、reverse()可被vue监测到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值