17

为什么我应该在原版 MobX 上使用 MobX 状态树?似乎每次我读到 MobX 时,都会在同一个地方提到 MST。真的有人单独使用MobX吗?

可能问题太笼统了...

4

6 回答 6

31

实际上,如果您仔细想想,MST 或MobX 状态树是一个非常具有描述性的名称。

MobX 速度很快,但没有提供任何开箱即用的组织结构,因此无法进行集中操作,例如拍摄整个状态的快照、从快照中恢复状态、自动同步分离的存储、时间旅行或热重载。由开发者支持。

MST通过将单独的商店组织成单个交互和交互节点树,开箱即用地支持所有上述(以及更多)。

MST(mobx-state-tree)的核心是活树的概念。该树由可变但受严格保护的对象组成,这些对象富含运行时类型信息。换句话说,每棵树都有一个形状(类型信息)和状态(数据)。从这棵活树中,自动生成不可变的、结构共享的快照。

然而,所有这些都是有代价的,而且 MST 通常比纯 MobX 慢一些。因此,如果您不需要这些功能,请不要犹豫,只使用 MobX。

于 2019-03-18T06:29:58.230 回答
9

是的,很多人使用“普通”的 MobX——它本身就具有巨大的价值。利用“可观察”状态的核心概念是 MobX 的杀手锏。对我来说,将它与 React 一起使用,它使我能够无所畏惧地处理浏览器中的大量连接数据,而不必担心“刷新”问题或“计算值”问题。

“MST”的额外层只是增加了更多(自以为是)结构。(如果您喜欢被告知该做什么,那就太好了;)它更像是一个“Redux”风格的状态管理器,其中状态转换被明确定义,并且像时间旅行这样的事情是可能的。对我来说,MobX 本身就解决了很多问题,我建议任何新人都应该坚持使用“普通”MobX,在你真正体会到你从 MobX 本身得到的东西之前,甚至不要考虑 MST。

于 2019-09-19T20:36:09.433 回答
2

我不会进行冗长的比较。

简而言之,MobX 是无主见的 util lib,而 MST 是建立在 MobX 之上的固执己见的解决方案。

如果您是 MobX 的新手,请使用 MST。先熟悉它的概念,然后再决定你的第二个项目:)

Bare MobX 非常灵活,可以非常有创意地使用。但是你必须明白你在用它做什么。这有点像黑魔法,强大,但需要非常小心。

于 2019-04-11T04:33:26.407 回答
1

我正在使用 MST 来响应本机应用程序。MST 引用对于定义数据模型也非常方便。我选择 MST 而不是 mobx 作为引用功能。

于 2019-11-24T16:16:24.113 回答
0

MobX 提供透明的点状态管理。简单、高效、直接。

但是 Redux 有大量的思想共享,所以 MST。

MST 将核心 MobX 反应式引擎包装在 Flux 模式中:间接、非特定且需要大量样板。声称的好处都没有转化为程序员的效率。

如果是我的话,我会选择 MobX,或者,如果我喜欢样板,Redux,它会有更多的工具。

于 2022-02-22T11:01:48.790 回答
-3

不完全回答这个问题,但是,我使用azState 我认为没有理由使用复杂的怪物进行状态管理

公平披露 我写的

于 2020-12-26T20:01:55.013 回答