阅读 《vue.js 设计与实现》4.5
2022-08-10 本文已影响0人
alue
嵌套的 effect 与 effect 栈
原先用全局变量 activeEffect
来存储副作用, 内层的 effect 改变 activeEffect
之后,没有恢复的能力。所以需要进一步优化数据结构。
这里新增一个栈结构,来支持副作用的嵌套行为。随着副作用函数的执行,维护栈入栈出,并让全局变量activeEffect
始终指向栈顶。这样,全局变量activeEffect
具备恢复能力,也就具备了支持嵌套的能力。
总结
栈这种数据结构,特别适合在函数切换时保存执行上下文。