12种JavaScript常用的MVC框架比较分析


Posted in Javascript onNovember 16, 2015

本文详细讲述了12种JavaScript常用的MVC框架。分享给大家供大家参考,具体如下:

Gordon L. Hempton是西雅图的一位黑客和设计师,他花费了几个月的时间研究和比较了12种流行的JavaScript MVC框架,并在博客中总结了每种框架的优缺点,最终的结果是,Ember.js胜出。

此次比较针对的特性标准有四种,分别是:

① UI绑定(UI Bindings)
② 复合视图(Composed Views)
③ Web表现层(Web Presentation Layer)
④ 与其他框架良好协作(Plays Nicely with Others)

对于各种JavaScript MVC框架,Gordon都总结了优缺点:

1. Backbone.js ——优点:强大的社区,强劲的势头;缺点:抽象较弱,很多功能亟待增加。

2. SproutCore ——优点:对绑定的支持,可靠的社区,大量特性;缺点:过度规范,难以和不需要的特性解耦。

3. Sammy.js ——优点:易于学习,更容易和现存的服务端应用程序整合;缺点:过于简单,无法应用于大型应用程序中。

4. Spine.js ——优点:轻量级,文档很完备;缺点:它的核心概念“spine”是异步的用户界面,这意味着理想状况用户界面永远不会发生堵塞,而这个基础有缺陷。

5. Cappuccino ——优点:大型深思熟虑后的框架,良好的社区,很棒的继承模型;缺点:由iOS开发者创建,使用JavaScript模拟Objective-C。

6. Knockout.js ——优点:对绑定的支持,完备的文档和教程;缺点:绑定语法拙劣,缺少统一的视图组件层级关系。

7. Javascript MVC ——优点:可靠的社区;缺点:基于字符串的继承模型很差,控制器与视图关系过密而缺少绑定。

8. GWT(Google Web Toolkit) ——优点:全面的框架,良好的社区,可靠的基于Java的组件继承模型;缺点:可能无法经受时间的考验,另外,Java在客户端上的抽象有些笨拙。

9. Google Closure ——优点:很好的基于组件的UI组合系统。缺点:缺少UI绑定支持。

10. Ember.js ——优点:很丰富的模板系统,拥有复合视图和UI绑定;缺点:相对较新,文档不够完备。

11. Angular.js ——优点:对模板范围和控制器设计有很好的考虑,拥有依赖注入系统,支持丰富的UI绑定语法。缺点:代码的模块性不强,视图的模块化也不够。

12. Batman.js ——优点:代码清晰,绑定、持久化的方法简单;缺点:使用了单例控制器。

经过对以上各种Javascript MVC框架特性的比较,Gordon认为只有Ember.js能够完全满足他的要求,从而成为他最终选用的框架。

你是否也使用过某些JavaScript MVC框架呢?欢迎参与讨论。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
在vs2010中调试javascript代码方法
Feb 11 Javascript
快速解决jQuery与其他库冲突的方法介绍
Jan 02 Javascript
jQuery使用fadein方法实现渐出效果实例
Mar 27 Javascript
javascript使用shift+click实现选择和反选checkbox的方法
May 04 Javascript
怎么通过onclick事件获取js函数返回值(代码少)
Jul 28 Javascript
jquery实现的伪分页效果代码
Oct 29 Javascript
JavaScript Base64 作为文件上传的实例代码解析
Feb 14 Javascript
分享一个精简的vue.js 图片lazyload插件实例
Mar 13 Javascript
JavaScript创建对象_动力节点Java学院整理
Jun 27 Javascript
使用travis-ci如何持续部署node.js应用详解
Jul 30 Javascript
vue使用@scroll监听滚动事件时,@scroll无效问题的解决方法详解
Oct 15 Javascript
JavaScript实现电灯开关小案例
Mar 30 Javascript
跟我学习javascript的函数和函数表达式
Nov 16 #Javascript
使用JQuery FancyBox插件实现图片展示特效
Nov 16 #Javascript
uploadify多文件上传参数设置技巧
Nov 16 #Javascript
跟我学习javascript的var预解析与函数声明提升
Nov 16 #Javascript
跟我学习javascript的全局变量
Nov 16 #Javascript
浅析JavaScript访问对象属性和方法及区别
Nov 16 #Javascript
跟我学习javascript的基本类型和引用类型
Nov 16 #Javascript
You might like
php运行报错Call to undefined function curl_init()的最新解决方法
2016/11/20 PHP
Yii全局函数用法示例
2017/01/22 PHP
PHP实现百度人脸识别
2019/05/06 PHP
通用于ie和firefox的函数 GetCurrentStyle (obj, prop)
2006/12/27 Javascript
ASP SQL防注入的方法
2008/12/25 Javascript
10个基于jQuery或JavaScript的WYSIWYG 编辑器整理
2010/05/06 Javascript
没有document.getElementByName方法
2013/08/19 Javascript
jquery中prop()方法和attr()方法的区别浅析
2013/09/06 Javascript
jQuery select表单提交省市区城市三级联动核心代码
2014/06/09 Javascript
JS遍历数组及打印数组实例分析
2016/01/21 Javascript
JavaScript的ExtJS框架中数面板TreePanel的使用实例解析
2016/05/21 Javascript
jquery对Json的各种遍历方法总结(必看篇)
2016/09/29 Javascript
JQuery实现图片轮播效果
2017/05/08 jQuery
vue按需加载实例详解
2019/09/06 Javascript
layer.prompt输入层的例子
2019/09/24 Javascript
原生js实现随机点餐效果
2019/12/10 Javascript
VueJS实现用户管理系统
2020/05/29 Javascript
vue穿梭框实现上下移动
2021/01/29 Vue.js
Linux下使用python调用top命令获得CPU利用率
2015/03/10 Python
Pandas实现dataframe和np.array的相互转换
2019/11/30 Python
Python3 集合set入门基础
2020/02/10 Python
Python argparse模块使用方法解析
2020/02/20 Python
Python基于Dlib的人脸识别系统的实现
2020/02/26 Python
Selenium基于PIL实现拼接滚动截图
2020/04/10 Python
详解python metaclass(元类)
2020/08/13 Python
Python 如何查找特定类型文件
2020/08/17 Python
Python colormap库的安装和使用详情
2020/10/06 Python
HTML5边玩边学(3)像素和颜色
2010/09/21 HTML / CSS
PHP如何与mysql建立链接
2013/05/05 面试题
测试驱动开发的主要步骤是什么
2014/12/10 面试题
平面设计师工作职责范文
2013/12/03 职场文书
《北京的春节》教学反思
2014/04/07 职场文书
优秀教师自我评价范文
2014/09/27 职场文书
个人师德师风自我剖析材料
2014/09/29 职场文书
2014年纠风工作总结
2014/12/08 职场文书
详解java如何集成swagger组件
2021/06/21 Java/Android