MVC && MVVM

什么是MVC,什么是MVVM?

面向历程 –> 面向对象 –> MVC –> MV*

面向历程:

开辟人员根据需求逻辑递次开辟代码逻辑,重要头脑形式在于怎样完成。先细节,后团体。

面向对象:

开辟人员先思索全部需求该由谁(哪一个对象)来完成,全部需求就是由许多对象来完成,然后在对象的详细逻辑中依旧照样面向历程。封装+多态+继续,先笼统,后详细。

面向历程与面向对象的区分:

  • 就像是电脑,面向历程是本身临盆电脑,包含电路板、零件等。面向对象是本身组装电脑,硬件已临盆终了。

  • 面向历程: 吃 狗(屎); 面向对象: 狗 吃(屎);

MVC:

确实的讲MVC是一种软件设想范例,早在1970年MVC的理念就已降生。不过长期以来MVC都是应用在重逻辑开辟的软件范畴和互联网产物的背景开辟范畴。

开辟人员根据Model(模子) – View(视图) – Controller(掌握器)相星散的逻辑举行需求开辟,将输入(View)、处置惩罚(Controller)、输出(Model -> View)自力开,这类逻辑的优点在于,营业逻辑与用户界面星散以后,后期关于界面的改版以及关于用户交互的处置惩罚变化,仅仅须要修正View层即可,不在须要对营业逻辑层举行多大的修正。后期的保护本钱会削减许多。

Model是须要衬着到页面中的数据模子,View是用户能够接触到的的界面,Controller是营业逻辑掌握

MVVM:

开辟人员只需斟酌和处置惩罚Model(数据模子)的变化即可,不必斟酌Model和View之间的数据绑定同步,更不必花精神用大批的代码猎取DOM元素转变DOM元素的值来完成界面数据的变化。一切事情交给VM(View-Model)来处置惩罚。
《MVC && MVVM》
MVVM并没有营业逻辑的掌握器,它经由过程数据双向绑定,及时更新View和Model层,当数据模子发生变化的时刻,用户界面(DOM)的内容会立即更新。反之假如用户操纵致使某些DOM内容变化(如input),ViewModel也会立即的将Model数据模子更新。

实际上另有一种形式叫做MVP,P是Presenter,它与MVVM相似,但不是双向绑定。

为何MVC?

跟着互联网产物前端营业逻辑的日益庞杂,JavaScript已从最初的仅仅完成页面动态效果,跟着AJAX的降生以及Google关于此手艺的注重和推行,如今的JavaScript演变成营业逻辑愈来愈庞杂和沉重的角色,JavaScript也圆满的向众人解释了什么才是真正的屌丝逆袭。跟着网站界面的庞杂化,以及愈来愈多的互联网产物都最先注重用户的交互体验,前端的营业逻辑和数据处置惩罚才被越发注重,也恰是跟着DOM操纵逻辑与营业逻辑的混淆,致使项目代码跟着时候的推移愈来愈多,愈来愈混淆,愈来愈难以保护。最早涌现的MVC理念的JS框架就是几年前进入前端范畴的Backbone.js。MVC设想理念终究被应用到的前端开辟的范畴。也恰是由于前端MVC理念的提高,更多的人熟悉到了前端开辟工程师的代价已不只是过去那种只做外表工夫的”伪程序员”。前端开辟工程师的春天赋刚刚最先。

庞杂的Web App
将开辟重心从DOM操纵,转移到数据操纵,将DOM操纵与程序逻辑解耦。
希冀提拔开辟效力、单元时候产出、后期代码扩展性,下降保护本钱

MVC另一种角度来讲算是一个公司手艺团队的开辟范例,只要范例的逻辑代码,才取得迅速开辟的便利和高效,也能够获得相较为范例的开辟形式更好的代码扩展性和可保护性。

为何MVVM?

数据双向绑定,开辟人员不必再把精神放在DOM的修正和更新,只需经由过程模板引擎将数据模子和用户界面绑定,框架会及时同步两边数据的变化。减轻了开辟人员的累赘,也削减了DOM操纵逻辑致使营业逻辑杂沓的可能性。

为何运用AngularJS

最早最先提高的前端MVC框架是Backbone,以后自创这类开辟形式的框架如雨后春笋般进入开辟者的视野。互联网巨子们也最先推出本身的MV*框架:
微软 – Knockout.js – MVVM
Google – Angular.js – MVC & MVVM
苹果 – Ember.js – MVC & MVVM
Facebook – React.js – MVVM

全栈工程师 -> MEAN解决方案

AngularJS既是MVC框架又是MVVM框架

之前有说到MVC形式就是一种开辟范例,AngularJS这个MVC框架带给我们的优点就是,他经过了Google许多项目的磨练,我们运用AngularJS也能够算是运用Google成熟的开辟范例来举行项目开辟。AngularJS这个MVC框架实际上汇集了太多太多Google的优异理念和编程范例,这关于许多希望能一致开辟范例的前端Team来讲是很珍贵的。

AngularJS既是MVC框架又是MVVM框架

之前有说到MVC形式就是一种开辟范例,AngularJS这个MVC框架带给我们的优点就是,他经过了Google许多项目的磨练,我们运用AngularJS也能够算是运用Google成熟的开辟范例来举行项目开辟。AngularJS这个MVC框架实际上汇集了太多太多Google的优异理念和编程范例,这关于许多希望能一致开辟范例的前端Team来讲是很珍贵的。

谢谢彬大神的指点和整顿。关于我,伪全栈工程师。

《MVC && MVVM》

    原文作者:tg
    原文地址: https://segmentfault.com/a/1190000004237800
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞