我在近半年的项目中使用MobX+Rreact。我们只使用@observer,@computed,reaction,有时当
有人能展示出使用autorun、interceptor和observe的真正有用的案例吗?
autorun
由于您使用的是react(或任何其他具有mobx绑定的框架(,因此没有使用autorun
的实际情况。当您使用reactjs
时,您将组件封装在observer
中,以便它们自动连接以响应(render
(mobx可观察性。但是,如果您使用的是vanilla-js,那么autorun
是必不可少的,因为它使您能够对mobx的更改做出反应。如果你查看autorun的文档,你会发现所有的例子都是vanilla-js。
observe
它是一个强大的低级功能,使您能够监视observables
实际发生的情况。因此,假设在Array
的情况下,您可以观察阵列发生的更改,这样就可以准确地通知您更改了什么。例如,可以通知您添加了的确切值,在索引处。使用常规数组无法做到这一点,但由于mobx使用代理包装所有内容,您可能会说此函数位于代理和真实数组之间,并监视代理(mobx(如何修改数组。文档中的更多信息-观察
intercept
它是一个类似于observe
的函数,你可能会想到位于observe
函数上方的函数,它有机会改变mobx试图分配给可观测值的值。因此,如果你有person.job
对象和属性,你可以在person.job
上设置intercept
,你将有机会修改应该分配给person.job
的值,并且在mobx通知所有人该更改之前。因此,在person.job
的情况下,您只能强制使用pilot
或sailor
值,并添加其他值。文档中的更多信息-拦截