一直不能分别前端框架和类库(我这个前端也是假的吧?),结合各位前辈的思想,整理了一下:html
前端框架与前端类库的区别前端
使用框架前,我以为很重要的一点是弄清类库(诸如JQuery)和框架(诸如angularJS)的区别在何处。后端
简单而言,类库,解决的是代码或者是模块级别的复用或者对复杂度的封装问题,例如将一个解决复杂问题的功能模块封装成一个函数,提供一个简单的接口。库它是一种工具,它提供了不少封装好的方法,用与不用取决于咱们自身,即便用了也不会影响咱们呢的代码结构。前端框架
而框架,更多的是对模式级别的复用和对程序组织的规范。这里的模式是指好比MVC,为了实现M和V的解耦,把复杂的耦合关系由常常变化的业务代码转移到不常常变化的框架内部消化。是面向一个领域来提供一套解决方案,提升开发效率,若是咱们选择了使用某框架,就应该遵循该框架所规定的规则。框架
两者最主要的区别是:JQuery以DOM操做为中心,框架,准确来讲是MVC框架,是以模型(model)为中心,而DOM操做是附加的。因此,以模型为中心最终达到的目的是带来一整套工做流程的变动,使得后台工程师能够编写前端的模型代码,把后台与前端打通,交互设计师处理UI跟模型的互动关系,UI设计师能够专一、无障碍的处理HTML源码,把它们以界面模板的形式提交给交互工程师。这一整套协做机制能大大提升开发效率。使用MVC框架使得前端任务更好的被解耦。函数
前端MVC框架思想工具
咱们知道,传统的MVC模式将一个应用划分为——模型层(model)、视图层(view)、控制层(controller)。他们在应用系统中担当不一样的角色,完成不一样的任务。spa
Model:即数据模型,用来包装和应用程序的业务逻辑相关的数据或者对数据进行处理,模型能够直接访问数据。设计
View:视图用来有目的显示数据,在视图中通常没有程序上的逻辑,为了实现视图上的最新功能,视图须要访问它监视的数据模型。htm
Controller:控制器调控模型和视图的联系,它控制应用程序的流程,处理事件并做出响应,事件不单单包括用户的行为还有数据模型上的改变。经过捕获用户事件,通知模型层做出相应的更新处理,同时将模型层的更新和改变通知给视图,使得视图做出相应改变。所以控制器保证了视图和模型的一致性。
那么在前端中的表现。前端MVC中各部分的职责:
我对前端的View的理解是,与页面上元素直接相关的部分都属于View。包括html,CSS和一部分直接控制页面元素的JS。能够从Model中获得数据,并将其显示到页面上。而关于数据的变动与请求,则通通交给Controller处理。
那么Controller呢?做为Model和View的粘合剂,Controller将View方面的请求转发给合适的Model,在必要时也会去更新View。而Controller自己也能够做为Model的观察者,获取Model的变动。而做为Controller自己,就不该该有涉及到页面元素的代码了。
最后谈谈Model,与后端的沟通、AJAX请求以及对数据的处理都属于Model的工做。Model自己不知道谁是View,谁是Controller。它只提供一些方法供View和Controller调用,而且将变动通知给它的观察者View或Controller。显然,Model与页面元素之间也解耦了。
虽然基于MVC模型的框架之间也有不少不一样之处,可是整体而言,Model负责保存vier须要的数据以及数据处理逻辑,例如读写,更新,删除,验证,转换等。View负责接收并显示Model提供的数据以及接收用户的输入,而且响应事件,Model更新后及时将更新反馈回用户。Controller处理业务逻辑和事件逻辑。
原文地址(https://www.cnblogs.com/coco1s/p/4040108.html)