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 事件的一些重要说明
Oct 25 Javascript
javascript 动态设置已知select的option的value值的代码
Dec 16 Javascript
用js实现判断当前网址的来路如果不是指定的来路就跳转到指定页面
May 02 Javascript
推荐40款强大的 jQuery 导航插件和教程(上篇)
Sep 14 Javascript
jquery1.9 下检测浏览器类型和版本的方法
Dec 26 Javascript
JavaScript简单实现弹出拖拽窗口(一)
Jun 17 Javascript
js实现返回顶部效果
Mar 10 Javascript
微信小程序判断用户是否需要再次授权获取个人信息
Jul 18 Javascript
JS开发 富文本编辑器TinyMCE详解
Jul 19 Javascript
js 动态校验开始结束时间的实现代码
May 25 Javascript
vue动画—通过钩子函数实现半场动画操作
Aug 09 Javascript
JavaScript常用8种数组去重代码实例
Sep 09 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微信支付通知的处理方式
2014/05/25 PHP
PHP微信开发之微信录音临时转永久存储
2018/01/26 PHP
论坛特效代码收集(落伍转发-不错)
2006/12/02 Javascript
js实现的折叠导航示例
2013/11/29 Javascript
jQuery判断div随滚动条滚动到一定位置后停止
2014/04/02 Javascript
深入理解Javascript中this的作用域
2014/08/12 Javascript
jquery实现多屏多图焦点图切换特效的方法
2015/05/04 Javascript
js实现遍历含有input的table实例
2015/12/07 Javascript
基于JavaScript FileReader上传图片显示本地链接
2016/05/27 Javascript
jQuery简单实现页面元素置顶时悬浮效果示例
2016/08/01 Javascript
全面解析Bootstrap表单样式的使用
2016/09/09 Javascript
简单的js表格操作
2016/09/24 Javascript
jQuery实现可移动选项的左右下拉列表示例
2016/12/26 Javascript
详解AngularJs HTTP响应拦截器实现登陆、权限校验
2017/04/11 Javascript
动态加载、移除js/css文件的示例代码
2018/03/20 Javascript
前后端如何实现登录token拦截校验详解
2018/09/03 Javascript
iview在vue-cli3如何按需加载的方法
2018/10/31 Javascript
Vue的状态管理vuex使用方法详解
2020/02/05 Javascript
[04:32]DOTA2著名解说配音敌法师 现场专访海涛怒切假腿
2013/12/20 DOTA
快速解决PyCharm无法引用matplotlib的问题
2018/05/24 Python
Django中使用第三方登录的示例代码
2018/08/20 Python
用Pycharm实现鼠标滚轮控制字体大小的方法
2019/01/15 Python
python 实现矩阵上下/左右翻转,转置的示例
2019/01/23 Python
使用python实现简单五子棋游戏
2019/06/18 Python
解决reload(sys)后print失效的问题
2020/04/25 Python
Python SMTP发送电子邮件的示例
2020/09/23 Python
意大利咖啡、浓缩咖啡和浓缩咖啡机:illy caffe
2019/03/20 全球购物
上班迟到检讨书
2014/01/10 职场文书
2014年预备党员学习新党章思想汇报
2014/09/15 职场文书
党员评议个人总结
2014/10/20 职场文书
2015年幼儿园班主任工作总结
2015/05/12 职场文书
2016教师节问候语
2015/11/10 职场文书
Python中使用ipython的详细教程
2021/06/22 Python
关于springboot配置druid数据源不生效问题(踩坑记)
2021/09/25 Java/Android
SQL Server中常用截取字符串函数介绍
2022/03/16 SQL Server
在MySQL中你成功的避开了所有索引
2022/04/20 MySQL