vue中---computed的实现原理

参考

computed是什么,主要干嘛。有啥特点:

computed 是计算属性,可缓存。主要用来替换文本中的模板。插值表达式。

  • 用来包装data数据的复杂逻辑。方便管理。
  • 当依赖的data值发生改变时会自动重新计算。
  • 包含 get 和 set。

写法:

data() {
	return {
		a:1
	}
},
computed:{
	aa: function() {// 1  仅读取的计算属性
		return this.a++;
	},
	bb:{ //  2
		get:function() {
			return this.a * 2;
		},
		set:function(val) {
			this.a = val;
		}
	}
}

其实有点类似于 vue 的数据响应式原理。也类似于 vuex 中的 getters 属性。
通过包装响应式数据 data,对包装后的新数据进行响应式转换。
当所依赖的 data 数据发生变化时去自动地重新计算值。否则直接使用缓存数据。

computed 是如何初始化的。

computed 初始化之后干了什么

当获取计算属性时,将 computed 作为观察者watcher。添加到相应的 data 数据的依赖中。

一旦 data 中的数据发生变化,发布监听。就可以自动触发 computed 进行重新计算。

所依赖的 data 数据发生变化时,如何去重新计算的。

computed 的值为什么会被缓存。

因为当值不发生变化时,通过 get 可以直接获取到值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值