阅读 《vue.js 设计与实现》4.5

2022-08-10  本文已影响0人  alue

嵌套的 effect 与 effect 栈

原先用全局变量 activeEffect 来存储副作用, 内层的 effect 改变 activeEffect 之后,没有恢复的能力。所以需要进一步优化数据结构。

这里新增一个栈结构,来支持副作用的嵌套行为。随着副作用函数的执行,维护栈入栈出,并让全局变量activeEffect始终指向栈顶。这样,全局变量activeEffect具备恢复能力,也就具备了支持嵌套的能力。

总结

栈这种数据结构,特别适合在函数切换时保存执行上下文。

上一篇 下一篇

猜你喜欢

热点阅读