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 处理网页内容的实现代码
Feb 15 Javascript
javascript中caller和callee详解
Aug 10 Javascript
javascript实现很浪漫的气泡冒出特效
Sep 05 Javascript
JavaScript页面实时显示当前时间实例代码
Oct 23 Javascript
js实现淡入淡出轮播切换功能
Jan 13 Javascript
Vue声明式渲染详解
May 17 Javascript
使用travis-ci如何持续部署node.js应用详解
Jul 30 Javascript
Vue 滚动行为的具体使用方法
Sep 13 Javascript
Vue.js划分组件的方法
Oct 29 Javascript
vue中v-cloak解决刷新或者加载出现闪烁问题(显示变量)
Apr 20 Javascript
JS判断字符串是否为整数的方法--简单的正则判断
Jul 23 Javascript
Vue基础学习之项目整合及优化
Jun 02 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中关于普通表单多文件上传的处理方法
2011/03/25 PHP
二进制交叉权限微型php类分享
2014/02/07 PHP
php读取目录所有文件信息dir示例
2014/03/18 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
2019/10/03 PHP
Use Word to Search for Files
2007/06/15 Javascript
图片上传即时显示缩略图的js代码
2009/05/27 Javascript
jQuery学习7 操作JavaScript对象和集合的函数
2010/02/07 Javascript
jquery checkbox,radio是否选中的判断代码
2010/03/20 Javascript
js修改table中Td的值(定义td的双击事件)
2013/01/10 Javascript
使用javascript创建快捷方式的简单实例
2013/08/09 Javascript
javascript中字符串的定义示例代码
2013/12/19 Javascript
JavaScript二维数组实现的省市联动菜单
2014/05/08 Javascript
EasyUi datagrid 实现表格分页
2015/02/10 Javascript
javascript瀑布流式图片懒加载实例
2020/06/28 Javascript
分享10个优化代码的CSS和JavaScript工具
2016/05/11 Javascript
基于BootStrap Metronic开发框架经验小结【六】对话框及提示框的处理和优化
2016/05/12 Javascript
jQuery设置单选按钮radio选中/不可用的实例代码
2016/06/24 Javascript
js浏览器滚动条卷去的高度scrolltop(实例讲解)
2017/07/07 Javascript
LayUi中接口传数据成功,表格不显示数据的解决方法
2018/08/19 Javascript
微信小程序sessionid不一致问题解决
2019/08/30 Javascript
VUE:vuex 用户登录信息的数据写入与获取方式
2019/11/11 Javascript
原生JS实现汇率转换功能代码实例
2020/05/13 Javascript
Python使用matplotlib绘制动画的方法
2015/05/20 Python
python 内置函数filter
2017/06/01 Python
Python+Selenium+PIL+Tesseract自动识别验证码进行一键登录
2017/09/20 Python
使用python脚本自动创建pip.ini配置文件代码实例
2019/09/20 Python
Python3查找列表中重复元素的个数的3种方法详解
2020/02/13 Python
Django启动时找不到mysqlclient问题解决方案
2020/11/11 Python
HTML5不支持frameset的两种解决方法
2016/11/14 HTML / CSS
英国最好的包装供应商:Priory Direct
2019/12/17 全球购物
语文教学感言
2014/02/06 职场文书
大学运动会入场词
2014/02/22 职场文书
家长学校培训材料
2014/08/20 职场文书
2014年大学班长工作总结
2014/11/14 职场文书
运动会三级跳加油稿
2015/07/21 职场文书
解决hive中导入text文件遇到的坑
2021/04/07 Python