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 相关文章推荐
jQuery的实现原理的模拟代码 -5 Ajax
Aug 07 Javascript
在IE 浏览器中使用 jquery的fadeIn() 效果 英文字符字体加粗
Jun 02 Javascript
document.getElementBy("id")与$("#id")有什么区别
Sep 22 Javascript
将input file的选择的文件清空的两种解决方案
Oct 21 Javascript
jqgrid 表格数据导出实例
Nov 21 Javascript
JQuery中attr方法和removeAttr方法用法实例
May 18 Javascript
JavaScript转换与解析JSON方法实例详解
Nov 24 Javascript
Vue.js 点击按钮显示/隐藏内容的实例代码
Feb 08 Javascript
layui table设置前台过滤转义等方法
Aug 17 Javascript
详解基于iview-ui的导航栏路径(面包屑)配置
Feb 22 Javascript
性能优化篇之Webpack构建速度优化的建议
Apr 03 Javascript
详解关于webpack多入口热加载很慢的原因
Apr 24 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实现zip文件解压操作
2015/11/03 PHP
[原创]PHP简单开启curl的方法(测试可行)
2016/01/11 PHP
JScript中的"this"关键字使用方式补充材料
2007/03/08 Javascript
cookie的复制与使用记住用户名实现代码
2013/11/04 Javascript
网页运行时提示对象不支持abigimage属性或方法
2014/08/10 Javascript
js中flexible.js实现淘宝弹性布局方案
2020/06/23 Javascript
JS组件Bootstrap实现下拉菜单效果代码
2016/04/26 Javascript
很实用的js选项卡切换效果
2016/08/12 Javascript
怎样判断jQuery当前元素是隐藏还是显示
2016/11/23 Javascript
JavaScript实现数组降维详解
2017/01/05 Javascript
Javascript es7中比较实用的两个方法示例
2017/07/21 Javascript
JSON创建键值对(key是中文或者数字)方式详解
2017/08/24 Javascript
vue导出html、word和pdf的实现代码
2018/07/31 Javascript
Vue-component全局注册实例
2018/09/06 Javascript
原生JS实现旋转轮播图+文字内容切换效果【附源码】
2018/09/29 Javascript
Node.js Windows Binary二进制文件安装方法
2019/05/16 Javascript
jQuery实现的点击显示隐藏下拉菜单功能完整示例
2019/05/17 jQuery
javascript设计模式 ? 桥接模式原理与应用实例分析
2020/04/13 Javascript
[30:51]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#1Liquid VS MVP.Phx第一局
2016/03/04 DOTA
[01:11:08]Winstrike vs NB 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
[01:01:43]EG vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
Python字符串拼接的几种方法整理
2017/08/02 Python
python中字符串变二维数组的实例讲解
2018/04/03 Python
使用PyCharm安装pytest及requests的问题
2020/07/31 Python
CSS3 滤镜 webkit-filter详细介绍及使用方法
2012/12/27 HTML / CSS
啤酒销售实习自我鉴定
2013/09/24 职场文书
计算机专业大学生的自我评价
2013/11/14 职场文书
英语自荐信范文
2013/12/11 职场文书
法律专业应届生自荐信范文
2014/01/06 职场文书
捐献物资倡议书范文
2014/05/19 职场文书
行政专员岗位职责范本
2014/08/26 职场文书
2015届本科毕业生自我鉴定
2014/09/27 职场文书
党员个人自我评价
2015/03/03 职场文书
生日祝酒词大全
2015/08/10 职场文书
2019年公司快递收发管理制度模板
2019/11/20 职场文书
浅谈MySQL表空间回收的正确姿势
2021/10/05 MySQL