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 可以直接获取到值。