我正在参加「码上掘金挑战赛」详情请看:码上掘金挑战赛来了!
手动实现响应式
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函数依次执行。