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 相关文章推荐
javascript使用正则表达式实现去掉空格之后的字符
Feb 15 Javascript
在JavaScript中处理时间之getHours()方法的使用
Jun 10 Javascript
JavaScript正则表达式之multiline属性的应用
Jun 16 Javascript
异步JavaScript编程中的Promise使用方法
Jul 28 Javascript
javascript图片滑动效果实现
Jan 28 Javascript
自动完成的搜索框javascript实现
Feb 26 Javascript
基于Javascript实现返回顶部按钮
Feb 29 Javascript
JavaScript编写点击查看大图的页面半透明遮罩层效果实例
May 09 Javascript
JS实现图片局部放大或缩小的方法
Aug 20 Javascript
原生JS实现几个常用DOM操作API实例
Jan 19 Javascript
Angular.js中数组操作的方法教程
Jul 31 Javascript
Vue父子组件之间的通信实例详解
Sep 28 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
linux系统上支持php的 iconv()函数的方法
2011/10/01 PHP
Apache实现Web Server负载均衡详解(不考虑Session版)
2013/07/05 PHP
浅析THINKPHP的addAll支持的最大数据量
2015/02/03 PHP
PHP数组函数array_multisort()用法实例分析
2016/04/02 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
2017/09/21 PHP
jquery.validate分组验证代码
2011/03/17 Javascript
JavaScript中的作用域链和闭包
2012/06/30 Javascript
AngularJS入门心得之directive和controller通信过程
2016/01/25 Javascript
使用递归遍历对象获得value值的实现方法
2016/06/14 Javascript
浅析vue中常见循环遍历指令的使用 v-for
2018/04/18 Javascript
深入剖析Node.js cluster模块
2018/05/23 Javascript
浅谈让你的代码更简短,更整洁,更易读的ES6小技巧
2018/10/25 Javascript
JavaScript设计模式之代理模式实例分析
2019/01/16 Javascript
jQuery实现日历效果
2020/09/11 jQuery
vue中是怎样监听数组变化的
2020/10/24 Javascript
python计算对角线有理函数插值的方法
2015/05/07 Python
Python简单生成随机数的方法示例
2018/03/31 Python
浅谈python中拼接路径os.path.join斜杠的问题
2018/10/23 Python
python3.6利用pyinstall打包py为exe的操作实例
2018/10/31 Python
python for 循环获取index索引的方法
2019/02/01 Python
linux中如何使用python3获取ip地址
2019/07/15 Python
Python中函数的返回值示例浅析
2019/08/28 Python
对python中assert、isinstance的用法详解
2019/11/27 Python
使用TensorFlow-Slim进行图像分类的实现
2019/12/31 Python
Pycharm内置终端及远程SSH工具的使用教程图文详解
2020/03/19 Python
使用keras根据层名称来初始化网络
2020/05/21 Python
HTML5之语义标签介绍
2016/07/07 HTML / CSS
Gtech官方网站:地毯清洁器、吸尘器及园艺设备
2018/05/23 全球购物
法国女性内衣购物网站:Glamuse
2019/05/13 全球购物
Rentalcars.com中国:世界上最大的在线汽车租赁服务
2019/08/22 全球购物
Timberland俄罗斯官方网上商店:全球领先的户外品牌
2020/03/15 全球购物
如何开发安全的AJAX应用
2014/03/26 面试题
部门年终奖分配方案
2014/05/07 职场文书
2015年行政人事部工作总结
2015/05/13 职场文书
2019最新版试用期劳动合同模板!
2019/07/04 职场文书
小学四年级作文之人物作文
2019/11/06 职场文书