说店铺是模特对吗?

Posted

技术标签:

【中文标题】说店铺是模特对吗?【英文标题】:Is it right to say that store is the model? 【发布时间】:2019-02-09 21:24:58 【问题描述】:

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

嗯,在学习了这些模式之后,似乎它们并没有太大的不同,组件是 VM,状态是模型,仅此而已。

我说的对吗?

如果是,为什么我们需要重命名该实体(存储而不是模型),IMO 它使理解新概念变得更加复杂,因为我们(我)寻找一个很大的差异,确认所有内容都必须重命名... 如果我错了,请帮助我了解差异在哪里?我的意思是重命名整个概念肯定有很大的不同...

谢谢

【问题讨论】:

是的,基本上它们是可比的,您将控制器角色移动到视图组件(用于验证/调节)和状态处理程序(作为方法的减速器) 好吧,我没有完全错? (为什么要投反对票?-我更新了我的问题) 我从来没有对任何人投过反对票。这个问题有点主观,很难给出准确的技术答案。尽管有最新的流行语驱动框架,但 MVC 还远未消亡。 问题可能是主观的,因为人们(我)正在使用(并且知道)一个概念,然后其他人告诉他们:忘记你所知道的一切它不如你想象的那么好。当我学习新事物时我很高兴,但我觉得我不理解新概念。 【参考方案1】:

如果您将 DOM 视为 Viewcomponents/VirtualDOM 视为 ViewModelstore 视为 Model,那么,imo它是MVVM。所以我认为你没有错。实际上,在我的项目中,我将我的全局 MobX 商店命名为 Store,并将我的本地 MobX 商店(适用于某些组件)命名为 Model。 (如果有更好的命名做法,请告诉我)

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

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

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

【讨论】:

以上是关于说店铺是模特对吗?的主要内容,如果未能解决你的问题,请参考以下文章

怎么修改淘宝店铺宝贝图片尺寸的宽度

男孩店铺前写作业书桌被收走,后续发生了什么

店铺淘客如何做到单店利润过万的个人实战技巧

XMLéè | 沈阳K11专卖店盛大开业

校园商铺-6店铺编辑列表和列表功能-6店铺列表展示之Controller层的实现

H5开发移动应用APP(店铺系列一)