MobX + 反应。有人可以展示一些真正有用的自动运行、拦截器和观察的案例吗?

MobX + React. Can someone show some real useful cases for autorun, intercepter and observe?

我在项目中使用 MobX + React 将近半年了。我们仅使用@observer、@computed、reaction,有时使用 when

有人可以展示使用自动运行、拦截器和观察的真正有用的案例吗?

autorun

由于您使用的是 React(或任何其他具有 mobx 绑定的框架),因此没有真正的案例可以使用 autorun。当您使用 reactjs 时,您将组件包装在 observer 中,因此它们会自动连接以响应(render)mobx observables。 但是如果你使用的是 vanilla js,那么 autorun 是必不可少的,因为它可以让你对 mobx 的变化做出反应。如果您查看 autorun 的文档,您会发现所有示例都是 vanilla js。

observe

这是一个强大的低级函数,可以让您监控 observables 上实际发生的事情。因此,假设在 Array 的情况下,您可以 观察 数组发生的更改,因此您可以准确地收到更改的通知。例如,可以通知您 确切地添加了 的值 index。你不能用常规数组做到这一点,但由于 mobx 用代理包装所有东西,你可能会说这个函数位于代理和 real 数组之间并监视代理(mobx)如何修改数组。 docs - observe

中的更多信息

intercept

它是一个类似于 observe 的函数,您可能会想到 位于 observe 函数 之上的那个函数,它有机会改变mobx 试图分配给 observables 的值。因此,如果您有 person.job 对象和 属性,您可以在 person.job 上设置 intercept,您将有机会修改应分配给 person.job 并且在 mobx 通知每个人该更改之前。因此,在 person.job 的情况下,您只能强制使用 pilotsailor 值,并抛出任何其他值。 docs - intercept

中的更多信息