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

相关推荐
szial5 小时前
JavaScript 的 call、apply 和 bind:如何控制函数调用
开发语言·前端·javascript
。小二5 小时前
Go 泛型并发利刃:async 库深度评测——370K ops/s、零依赖、生产就绪
开发语言·javascript·golang
CopyCode5 小时前
Agent 开发不是模型训练:一个前端的入门认知
前端·llm·agent
吠品6 小时前
HTTPS 真身:HTTP 套了层 TLS
java·服务器·前端
Highcharts.js6 小时前
Highcharts动态图表与数据实时更新应用讲解
javascript·highcharts·前端可视化·动态图表·交互图表·图表教程·实时刷新
JYeontu6 小时前
实现一个「曲线滑块验证」功能
前端·javascript·html
Csvn6 小时前
组件库(从 API 契约到 Headless 内核)
前端
deli0076 小时前
为什么最近邻路线总在绕远?2-opt 把 50 城 TSP 缩短了 20.9%
前端
guslegend6 小时前
底层数据设计:读写分离、分库分表与热点数据隔离
前端
Southern Wind6 小时前
AIAgent——第一章:本地 Agent 与 Vue 3 流式全栈实战
前端·javascript·vue.js