Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 说商店就是模型对吗?_Javascript_Design Patterns_Model View Controller_Flux_Mobx - Fatal编程技术网

Javascript 说商店就是模型对吗?

Javascript 说商店就是模型对吗?,javascript,design-patterns,model-view-controller,flux,mobx,Javascript,Design Patterns,Model View Controller,Flux,Mobx,我觉得MVC模式及其衍生产品(MVVM、MVP、MVW…)有点过时了。一种新的模式诞生了:状态管理模式(flux、mobx…) 在学习了这些模式之后,它们似乎并没有什么不同,组件是VM,状态是模型,就这样 我说得对吗 如果是的话,为什么我们需要重命名那个实体(存储而不是模型),这使得理解这个新概念变得更加复杂,因为我们(我)寻找一个巨大的差异,它确认了所有东西都必须重命名 如果我错了,请帮助我了解差异在哪里?我的意思是,将整个概念重新命名一定会有很大的不同 谢谢 < P>如果你认为DOM是“

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

在学习了这些模式之后,它们似乎并没有什么不同,组件是VM,状态是模型,就这样

我说得对吗

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

谢谢

< P>如果你认为DOM是“代码>视图/代码>,组件/ValualDOM作为<代码> VIEWSMODS,存储为<代码>模型< /代码>,那么,IMO是<代码> MVVM < /代码>。所以我认为你没有错。实际上,在我的项目中,我将全局MobX存储命名为
Store
,将本地MobX存储命名为
Model
。(如果有更好的命名方法,请告诉我)

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

  • 模型中的数据:您可以在商店中保存用户设置,如首选语言或主题,这样您的商店就不同于传统的
    模型
    ,后者应该处理业务逻辑和数据
  • 模型数量:如果使用Redux或Hyperapp或类似的工具,则只有一个全局状态树。因此,它与创建大量
    Model
    对象的传统方式截然不同
  • 组件驱动的:您不需要处理所有事情。您只需导入由其他人创建的组件,并向其传递数据即可。然后,它将处理用户交互并自行更新视图。可能它包含一个
    控制器
    ,可能它包含一个
    模型
    ,可能它不包含它们。没关系。你根本不在乎
  • 快照:您可以拍摄状态快照并将其保存为字符串。下一次,您可以解析字符串并还原所有网站/系统。就像保存/加载电子游戏一样。这是国家管理模式的原则。而传统的
    MVVM/MVW
    方式并不强迫您这样做。(而且我认为传统方法很难做到这一点,也许是不可能的)
  • 不可变的:以React为例,您有一个状态和一个虚拟dom树,您不需要更改它们,而是生成一个新状态和一个新树来替换旧状态和虚拟dom树。您应该了解树的生命周期,并知道如何高效地生成新树。它明显不同于传统的
    MVVM/MVW
    方式
因此,我认为以一种新的方式命名组件或存储之类的实体并不是一个坏主意。如果你用旧的方式命名它们,程序员可能会用旧的方式编码,因此他们将无法享受现代框架的全部功能。

< P>如果你认为DOM是“代码>视图/代码>,组件/ValualDOM作为<代码> VIEWSMODS,存储为<代码>模型< /代码>,那么,IMO是<代码> MVVM < /代码>。所以我认为你没有错。实际上,在我的项目中,我将全局MobX存储命名为
Store
,将本地MobX存储命名为
Model
。(如果有更好的命名方法,请告诉我)

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

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

因此,我认为以一种新的方式命名组件或存储之类的实体并不是一个坏主意。如果你用旧的方式命名它们,也许程序员会用旧的方式编码,因此他们不会享受现代框架的全部功能。

是的,基本上它们是可比较的,你正在将控制器角色移到视图组件(用于验证/调节)和状态处理程序(作为方法的还原器)中,好吧,那么我不是完全错了吗?(为什么要投反对票?-我更新了我的问题)我从来没有投过任何人的反对票。这个问题有点主观,很难给出准确的技术回答