说store就是模型对不对?

Is it right to say that store is the model?

我觉得 MVC 模式及其衍生物(MVVM、MVP、MVW..)有点死了。一种新模式诞生:状态管理模式(flux、mobx...)。

嗯,学了这些模式,好像区别不大,component就是VM,state就是Model就是了。

我说的对吗?

谢谢

如果您将 DOM 视为 Viewcomponents/VirtualDOM 则视为 ViewModel, 存储为 Model,好吧,我认为它是 MVVM。所以我认为你没有错。实际上,在我的项目中,我将我的全局 MobX 存储命名为 Store,并将我的本地 MobX 存储(为某些组件工作)命名为 Model。 (如果有更好的命名习惯请告诉我)

同时,状态管理模式与MVVM/MVC/MVW有很大不同。

  • 模型中的数据:您可以在商店中保存用户设置,例如首选语言或主题,这样您的商店就不同于传统的Model,这应该是处理业务逻辑和数据。
  • 模型数量:如果你使用 Redux 或 Hyperapp 之类的,只有一个全局状态树。因此,它与创建大量 Model 个对象的传统方式完全不同。
  • Component-Driven:您不需要处理所有事情。您可以只导入一个由其他人创建的组件,然后简单地将数据传递给它。然后它将处理用户交互并自行更新视图。也许它包含一个Controller,也许它包含一个Model,也许它包含其中的none。没关系。你根本不在乎。
  • Snapshot:您可以拍摄状态快照并将其保存为字符串。下次你可以只解析字符串并恢复所有 website/system。就像电子游戏的save/load一样。这是状态管理模式的一个原则。虽然传统的 MVVM/MVW 方式不会强迫您这样做。 (而且我认为传统方法很难做到这一点,也许是不可能的)
  • Immutable:以React为例,你有一个state和一个virtual-dom树,你不改变它们,你生成一个新的state和一个新树取代旧树。您应该了解树的生命周期,并知道如何有效地生成新树。明显不同于传统的MVVM/MVW方式。

所以我认为以新的方式命名组件或商店等实体并不是一个坏主意。如果你用旧的方式命名它们,也许程序员会用旧的方式编码,结果他们将无法享受现代框架的全部功能。