✊不积跬步,无以至千里;不积小流,无以成江海
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~