vue2和vue3实现响应式原理

vue2实现响应式原理

Object.defineProperty()来实现,它的作用是精准修改或增加对象上的一个属性

这个方法接收三个参数

1.需要定义的属性所在的当前对象

2.需要定义的属性名

3.属性描述符

属性描述符中有6个配置项(默认值:1,3,4为undefined,2,5,6为false)

1.value 

2.writable

3.get

4.get

5.configrable

6.enumerable ​​​​​​

属性描述符分为两种:数据描述符,存取描述符,且这两种描述符不能混用,一次只能用其中的一种,这两种的区别

1.数据描述符:有两个属性(value,writable)

 

 

2.存取描述符 :是由getter、setter 函数功能来描述的属性

get:返回值作为属性值,默认值为undefined

set: 接收唯一参数(修改的新值),默认值也为undefined

configrable: 默认值为false,不能删除当前属性,为true时,当前属性可以被删除,存在的问题就是删除属性时,尽管返回值为true,但不会捕获成功,不会引起页面的自动更新。(vue2处理响应式数据存在的问题)

vue3实现响应式原理(Reflect和proxy配合一起使用,Refelct是避免重复定义同一个属性时出现错误)

proxy(代理):这种方式解决了vue2中删除数据时不能自动更新页面的问题

 

 

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值