请选择 进入手机版 | 继续访问电脑版

VueJs 3 前端开发学习

 找回密码
 加入学习
搜索
热搜: 活动 交友 discuz
查看: 199|回复: 0

[Vuejs3] Vue3.x响应式数据原理?

[复制链接]

23

主题

25

帖子

113

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
113
发表于 2021-7-24 12:54:08 | 显示全部楼层 |阅读模式
Vue3.x改用Proxy替代Object.defineProperty。因为Proxy可以直接监听对象和数组的变化,并且有多达13种拦截方法。并且作为新标准将受到浏览器厂商重点持续的性能优化。
❝Proxy只会代理对象的第一层,那么Vue3又是怎样处理这个问题的呢?

判断当前Reflect.get的返回值是否为Object,如果是则再通过reactive方法做代理,这样就实现了深度观测。
❝监测数组的时候可能触发多次get/set,那么如何防止触发多次呢?
我们可以判断key是否为当前被代理对象target自身属性,也可以判断旧值与新值是否相等,只有满足以上两个条件之一时,才有可能执行trigger。




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入学习

本版积分规则

QQ|Archiver|手机版|小黑屋|vue3

GMT+8, 2021-10-16 23:27 , Processed in 0.042363 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表