本教程操作环境:windows7系统、javascript1.8.5版、dell g3电脑。
mvx框架模式:mvc+mvp+mvvm
1.mvc:model(模型)+view(视图)+controller(控制器),主要是基于分层的目的,让彼此的职责分开。
view通过controller来和model联系,controller是view和model的协调者,view和model不直接联系,基本联系都是单向的。
用户user通过控制器controller来操作模板model从而达到视图view的变化。
2.mvp:是从mvc模式演变而来的,都是通过controller/presenter负责逻辑的处理+model提供数据+view负责显示。
在mvp中,presenter完全把view和model进行了分离,主要的程序逻辑在presenter里实现。
并且,presenter和view是没有直接关联的,是通过定义好的接口进行交互,从而使得在变更view的时候可以保持presenter不变。
mvp模式的框架:riot,js。
3.mvvm:mvvm是把mvc里的controller和mvp里的presenter改成了viewmodel。model+view+viewmodel。
view的变化会自动更新到model, model的变化也会自动同步到view上显示。
这种自动同步是因为viewmodel中的属性实现了observer,当属性变更时都能触发对应的操作。
vue.js是什么?
看到了上面的框架模式介绍,我们可以知道它是属于mvvm模式的框架。那它有哪些特性呢?
其实vue.js不是一个框架,因为它只聚焦视图层,是一个构建数据驱动的web界面的库。
vue.js通过简单的api(应用程序编程接口)提供高效的数据绑定和灵活的组件系统。
vue.js的特性如下:
1. 轻量级的框架
2. 双向数据绑定
3. 指令
4. 插件化
vue.js与其他框架的区别?
1. 与angularjs的区别
相同点:
都支持指令:内置指令和自定义指令。
都支持过滤器:内置过滤器和自定义过滤器。
都支持双向数据绑定。
都不支持低端浏览器。
不同点:
1.angularjs的学习成本高,比如增加了dependency injection特性,而vue.js本身提供的api都比较简单、直观。
2.在性能上,angularjs依赖对数据做脏检查,所以watcher越多越慢。
vue.js使用基于依赖追踪的观察并且使用异步队列更新。所有的数据都是独立触发的。
对于庞大的应用来说,这个优化差异还是比较明显的。
2. 与react的区别
相同点:
react采用特殊的jsx语法,vue.js在组件开发中也推崇编写.vue特殊文件格式,对文件内容都有一些约定,两者都需要编译后使用。
中心思想相同:一切都是组件,组件实例之间可以嵌套。
都提供合理的钩子函数,可以让开发者定制化地去处理需求。
都不内置列数ajax,route等功能到核心包,而是以插件的方式加载。
在组件开发中都支持mixins的特性。
不同点:
react依赖virtual dom,而vue.js使用的是dom模板。react采用的virtual dom会对渲染出来的结果做脏检查。
vue.js在模板中提供了指令,过滤器等,可以非常方便,快捷地操作dom。
【推荐学习:javascript高级教程】
以上就是web前端三大主流框架如何对比分析的详细内容。