mobx.autorun()如何知道您访问哪些观察者?

时间:2017-05-15 21:32:52

标签: mobx

我纯粹好奇(高级别的解释)mobx.autorun()是如何聪明地浏览它传递的函数以确定访问哪些observable?

1 个答案:

答案 0 :(得分:2)

简短的故事是autorun不解析代码寻找用法,而是在第一次运行中记录每个对observable的访问。这就是它必须立即运行的原因。

它包含了每个observable的gettersetter,以便它可以记录您使用的那些(通过getter)并构建自动运行函数使用的可观察列表。如果它们中的任何一个发生变化(通过设置器),它将检测到并重新运行自动运行功能。