认识
2023年06月10日
一、认识
Vue.js 3.0
中, 通过 effect
注册副作用函数。基本机制如下所示:
function effect(fn,options = {}){
const effectFn = ()=>{
// effectFn 执行, activeEffect 就会重新设置为此时执行的 effectFn, 保证 effectFn 与 activeEffect 同步
activeEffect = effectFn;
const res = fn();
return res;
}
effectFn.options = options;
if(!options.lazy){
effectFn();
}
return effectFn();
}
二、变量细节
2.1 activeEffect
activeEffect
记录当前激活的副作用函数, 基本逻辑如下:
let activeEffect;
function effect(fn,options = {}){
const effectFn = ()=>{
activeEffect = effectFn;
}
};