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 attachEvent绑定多个事件执行顺序问题
Oct 20 Javascript
在多个页面使用同一个HTML片段的代码
Mar 04 Javascript
js类式继承的具体实现方法
Dec 31 Javascript
在Linux上用forever实现Node.js项目自启动
Jul 09 Javascript
jQuery+ajax实现无刷新级联菜单示例
May 21 Javascript
网页前端登录js按Enter回车键实现登陆的两种方法
May 10 Javascript
jQuery基于toggle实现click触发DIV的显示与隐藏问题分析
Jun 12 Javascript
Vue.js每天必学之组件与组件间的通信
Sep 08 Javascript
谈谈因Vue.js引发关于getter和setter的思考
Dec 02 Javascript
使用微信小程序开发前端【快速入门】
Dec 05 Javascript
深入浅析Vue.js中 computed和methods不同机制
Mar 22 Javascript
基于 Vue 的 Electron 项目搭建过程图文详解
Jul 22 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生成WAP页面
2006/10/09 PHP
php 验证码实例代码
2010/06/01 PHP
php实例分享之html转为rtf格式
2014/06/02 PHP
PHP的Laravel框架中使用AdminLTE模板来编写网站后台界面
2016/03/21 PHP
Laravel实现autoload方法详解
2017/05/07 PHP
PHP children()函数讲解
2019/02/03 PHP
PHP的curl函数的用法总结
2019/02/14 PHP
PHP+redis实现微博的推模型案例分析
2019/07/10 PHP
jQuery 中使用JSON的实现代码
2011/12/01 Javascript
JQueryEasyUI Layout布局框架的使用
2013/04/08 Javascript
使用JSON.parse将json字符串转换成json对象的时候会出错
2014/09/04 Javascript
Lab.js初次使用笔记
2015/02/28 Javascript
小心!AngularJS结合RequireJS做文件合并压缩的那些坑
2016/01/09 Javascript
学习JavaScript事件流和事件处理程序
2016/01/25 Javascript
jquery ztree实现树的搜索功能
2016/02/25 Javascript
Java  Spring 事务回滚详解
2016/10/17 Javascript
webpack dll打包重复问题优化的解决
2018/10/10 Javascript
windows下ipython的安装与使用详解
2016/10/20 Python
Python request设置HTTPS代理代码解析
2018/02/12 Python
十分钟利用Python制作属于你自己的个性logo
2018/05/07 Python
Python基于Floyd算法求解最短路径距离问题实例详解
2018/05/16 Python
pandas.DataFrame删除/选取含有特定数值的行或列实例
2018/11/07 Python
numpy数组之存取文件的实现示例
2019/05/24 Python
python中break、continue 、exit() 、pass终止循环的区别详解
2019/07/08 Python
浅谈django 模型类使用save()方法的好处与注意事项
2020/03/28 Python
pycharm sciview的图片另存为操作
2020/06/01 Python
基层干部2014全国两会学习心得体会
2014/03/10 职场文书
三字经教学反思
2014/04/26 职场文书
法院信息化建设方案
2014/05/21 职场文书
诚实守信道德模范事迹材料
2014/08/15 职场文书
房地产经营管理专业自荐信
2014/09/02 职场文书
审计局班子四风对照检查材料思想汇报
2014/10/07 职场文书
介绍信应该怎么开?
2019/04/03 职场文书
MySQL 数据丢失排查案例
2021/05/08 MySQL
jQuery ajax - getScript() 方法和getJSON方法
2021/05/14 jQuery
table设置超出部分隐藏,鼠标移上去显示全部内容的方法
2022/12/24 HTML / CSS