对Vue数据响应式的理解

本文介绍了Vue数据响应式的基本概念,当数据变化时,Vue如何使UI自动更新。内容包括通过getter和setter实现对象属性响应式,解决Object.defineProperty只处理第一层属性的问题,以及如何对数组进行响应式操作,如使用Vue.set或push方法确保UI更新。
摘要由CSDN通过智能技术生成

一、什么是Vue数据响应式

就是当数据发生改变时,UI页面做出响应。

比如Vue中的data被改变时,页面中的就会做出响应

        const vm=new Vue({data:{n:0}})

        如果修改vm.n,那么UI中的n会响应我

二、Vue中如何实现数据响应式

当你把一个普通的 JavaScript 对象传入 Vue 实例作为 data 选项,Vue 将遍历此对象所有的 property,并使用 Object.defineProperty 把这些 property 全部转为 getter/setter

1.通过getter和setter修改对象属性实现数据响应

2.定义完成的对象通过Object.defineProperty(obj,'n',{value:4})添加属性

但是Object.defineProperty存在一定的问题

1.Vue只会检查第一层属性

2.必须要有‘n’,才能代理和监听obj.n,没有会出现警告

解决办法:

Vue.set(thi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值