Vue3.0 响应式原理

Vue3.0的响应式系统通过Proxy对象进行了重大升级,能够监听动态新增和删除的属性以及数组变化。核心函数包括reactive、ref、toRefs和computed,以及effect、track和trigger用于收集依赖和更新。在Proxy中,set和deleteProperty需要返回布尔值,且涉及receiver的概念。ref适于将基本类型转换为响应式,而reactive返回的对象在某些情况下会丢失响应式,toRefs则帮助解构reactive对象并保持响应式。
摘要由CSDN通过智能技术生成

vue 3.0 响应式系统的升级

使用Proxy对象 重写响应式系统

  1. 可以监听动态新增的属性
  2. 可以监听删除的属性
  3. 可以监听数组的索引和length属性

响应式核心函数

  1. reactive/ref/toRefs/computed
  2. effect
  3. track 手机依赖
  4. trigger 更新依赖

Proxy 对象中的两个小问题

第一个问题: set 和 deleteProperty 需要返回布尔类型的值
第二个问题:Proxy 和 Reflect 使用 receiver

Proxy 中的 receiver: Proxy 或者继承 Proxy 的对象

Reflect 中的receiver:如果 target对象设置了getter,getter中的this指向 receiver

const obj = {
   
	get foo() {
   
		console.log(this)
		return this.bar
	}
}

const proxy = new Proxy(obj, {
   
	get (target, key, receiver) {
   
		if (key === 'bar') {
   
			console.log('value - bar')
		}
		return Reflect.get
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值