实现Vue3响应式

57 阅读1分钟

我正在参加「码上掘金挑战赛」详情请看:码上掘金挑战赛来了!

手动实现响应式

let price = 5;
let quantity = 2;
let total = 0;

let dep = new Set();

let effect = () => {
  total = price * quantity;
}; //依赖

function track() {
    dep.add(effect);
}

function trigger() {
    dep.forEach(effect => effect());
}

track(); //收集依赖
trigger(); //触发
console.log(total);

effect函数中定义的是要依赖的东西。

track函数中要把依赖加入dep中。

trigger函数为触发函数,在其中要取出dep中的effect函数依次执行。