mobx-react-lite 的“useLocalStore”钩子到底做了什么,为什么(只是有时)需要它?

arh*_*nee 9 mobx mobx-react mobx-react-lite

mobx-react 文档中,store 的创建方式存在差异。例如,在React Context页面上:

在第一个代码示例中,商店使用 useLocalStore 实例化:

  const store = useLocalStore(createStore)
Run Code Online (Sandbox Code Playgroud)

在第二个代码示例中,商店是通过直接“新建”商店来启动的:

  counterStore: new CounterStore(),
  themeStore: new ThemeStore(),
Run Code Online (Sandbox Code Playgroud)

通过推断,第一个是“本地”存储(因此需要 useLocalStore),第二个是“全局”存储,因此不需要。然而,目前尚不清楚这是为什么,以及随后的行为差异是什么

为什么useLocalStore在第二个例子中不需要,这对 React 中的 store 和 mobx 的行为有什么不同?

感谢您提供任何意见

arh*_*nee 12

好的,我找到了答案。useLocalStore将 javascript 文字转换为具有可观察属性的存储。如果从具有可观察属性的类对象创建存储,则不需要此操作。

感谢@freddyc的回答

  • Freddyc 的答案不再可用。你能给我们指出一个不同的来源吗? (2认同)