vuez 与 Vue3 响应式比较

Vue2 的响应式

对象:通过 defineProperty 对对象的已有属性值的读取和修改进行劫持(监视/拦被)。

数组:通过重写数组、更新数组等一系列更新元素的方法来实现元素修改的劫持。

存在的问题如下:

  1. 对象直接新添加属性或删除已有属性,界面不会自动更新。
  2. 数组直接通过下标替换元素或更新 length,界面不会自动更新 arr[O]= xx。

Vue3 的响应式

通过 Proxy(代理):拦截对data 任意属性的任意(13种)操作,包括属性值的读写、属性的添加、属性的删除等。

通过 Reflect(反射):动态地对被代理对象的相应属性进行特定的操作。

Proxy 官方文档:

https://developer.mozilla.org/zh-CN/docs/ Web/JavaScript/ Reference/Global_Objects/Proxy

Reflect 官方文档:

https:// developer. mozilla.org/zh-CN/ docs/ Web/ JavaScript/ Reference/Global_Objects/Reflect

相关推荐
袅沫6 分钟前
Nginx中部署多个前端项目——区分路径
服务器·前端
meilindehuzi_a14 分钟前
Next.js 全栈基础实战:从 SPA、SSR 到 App Router 与 Todo API
开发语言·javascript·ecmascript
用户9210802628614 分钟前
6. 数据大屏 WebSocket 稳定性优化:心跳检测、断点续传和消息去重
前端
柚yuzumi15 分钟前
CSS 定位布局:让元素各就各位
前端·css
光影少年18 分钟前
react navite图片加载优化、大图卡顿、缓存策略
前端·react native·react.js
小林ixn18 分钟前
用 Next.js 和 Redis 撸一个 Markdown 笔记系统:RSC 实战与组件化拆解
前端·redis·next.js
渣波19 分钟前
重构旅行体验:基于 React 的 AI 旅游助手对话系统实战解析
前端·javascript
今日无bug21 分钟前
列表转树:一道题搞懂 HashMap 在算法里的价值
前端·数据结构
用户9210802628621 分钟前
5. 数据大屏实时通信第一步:为什么选择 WebSocket,以及如何接入 Socket.IO
前端
岁月留痕16822 分钟前
17 实战项目二:实现“日记”项目多页面管理
前端