文章目录
前言
提示:这里是vue2和vue3原理和用法上的大致区,别没做深究
vue2响应式原理
一、Object.defineProperty()
1.定义
它是在一个对象上定义一个新的属性(或修改它现有的属性)
2.原理
对象:通过Object.defineProperty()读取属性,再通过getter和setter方法查看和修改数据,进行数据和视图的响应式。
数组:通过重写数据方法实现拦截。
3.用法
接受三个参数:Object.defineProperty( obj, prop,descriptor)
- obj:要定义的属性的对象
- prop:要定义或修改的名称或Symbol
- descriptor:要定义或修改的属性描述符
vue3响应式原理
一、原理
1.原理
Proxy:拦截对象中变化的属性
Reffect:操作源对象
2.用法
Proxy接受两个参数:target,handler
- target:Proxy的目标对象
- handler:属性中定义了函数执行的行为
- handler中 get set属性
get(),读取操作,可接受三个参数(目标对象、属性名、proxy实例)
set(),赋值操作,接受四个参数(目标对象、属性名、属性值、proxy实例)
总结
提示:这里是vue2和vue3原理和用法上的区别,精细没做到