[vue小知识] 数据双向绑定的原理 ===

基本认知

在vue2中,利用的是 Object.defineProperty 去劫持对象的访问器(中的Getrer , Setter属性),

当对象 属性值 发生变化时,可获取变化,然后根据变化来作后续响应; 

(它是一个一个的劫持,一次只能截取一个)

在vue3中,则是通过 Proxy 代理对象进行类似的操作,劫持的是整个对象,只要对象中的属性变化了,

都能劫持到

Object.defineProperty 和 Proxy 的优缺点?

Proxy

1.可以直接监听整个对象,而非是对象的某个属性

2.可以直接监听数组的变化

3.拦截方法丰富:多大13种,不限 get   set  deleteProperty , has 等

 比 Object.defineProperty 强大很多

Object.defineProperty

兼容性较好(可支持到IE9)

------vue放弃了对IE8的支持

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值