Javascript高级-MVC架构模式

98 阅读2分钟

✊不积跬步,无以至千里;不积小流,无以成江海

MVC架构模式、model、view、controller

定义

M - model(数据模型)负责操作所有数据

V - view(视图)负责所有UI界面

C - controller(控制)负责其他

优点

MVC模式有几个优点:

  • 提高了应用程序的可维护性。模型、视图和控制器各自负责不同的职责,因此可以独立开发和维护。
  • 提高了应用程序的可扩展性。可以通过添加新的模型、视图或控制器来扩展应用程序。
  • 提高了应用程序的可测试性。模型、视图和控制器可以单独测试。

personal speaking

看了很多MVC相关的讲解和视频,感觉MVC更像是一种封装的概念。查阅很多资料,发现并没有对于M、V、C三者之间关系有一个非常统一的概念。达成一致的,只是M、V、C三者的定义。

当一个程序的功能重复出现了很多次,这时候程序员就要开始考虑如何能将相似的功能模块“打包”到一个“库”中去调用,从而将JS代码更加简化。

感觉对于功能有限的程序,MVC的概念实施起来甚至有点“多此一举”,只有到功能相对复杂一些的项目中, MVC才能够展现它的魅力。所以笔记中似乎并不能很好的展示这个概念,对于新人,更多的应该是在实战中多感受多体验。


关于MVC及其衍生物的历史,查起来也是让我感到非常震惊。

MVC产生之后,衍生出MVVM这个概念,亦或说是方法,主打一个双向绑定。

而后为了定义一个一统的方法来使用这种思想,google的一帮工程师定义了angular js,angular1框架的使用门槛相对高。仍旧是坚持双向绑定。

angular1火了一段时间之后,做为它的简化版,vue1横空出世。

双向绑定不是完美的,它也有它的问题,双向绑定比较容易出错。这时候主打单向绑定的react开始变得越来越火。

angular1眼看着两个小弟后来居上,自己也觉得要更新一下,于是绑上了dart和typescript一起诞生了angular2.

过了一段时间vue1也觉得双向绑定不够好用,所以向单向绑定靠拢诞生了vue2.

与此同时,react也在进步,它吸取了函数式的精华,在16.8的版本出了原创性的hook的功能。

vue2看到了react的创新,也决定取其精华,升级了vue3。

这大概就是angular/react/vue的爱恨情仇。而它们的起点,都是基于MVC思想产生的一些变体。

怪不得所有的前端学习都绕不开MVC~