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 相关文章推荐
如何设置iframe高度自适应在跨域情况下的可用方法
Sep 06 Javascript
jQuery操作元素css样式的三种方法
Jun 04 Javascript
js动态切换图片的方法
Jan 20 Javascript
jquery实现动态操作select选中
Feb 11 Javascript
js实现网页抽奖实例
Aug 05 Javascript
js面向对象的写法
Feb 19 Javascript
详解如何较好的使用js
Dec 16 Javascript
微信小程序progress组件使用详解
Jan 31 Javascript
Vue如何实现响应式系统
Jul 11 Javascript
jQuery 选择器用法基础入门示例
Jan 04 jQuery
JS实现表单中点击小眼睛显示隐藏密码框中的密码
Apr 13 Javascript
一行JavaScript代码如何实现瀑布流布局
Dec 11 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中的实现trim函数代码
2007/03/19 PHP
php下的权限算法的实现
2007/04/28 PHP
浅析PHP原理之变量分离/引用(Variables Separation)
2013/08/09 PHP
PHP自动生成后台导航网址的最佳方法
2013/08/27 PHP
php格式化金额函数分享
2015/02/02 PHP
经典PHP加密解密函数Authcode()修复版代码
2015/04/05 PHP
PHP实现冒泡排序的简单实例
2016/05/26 PHP
tp5.1 框架数据库常见操作详解【添加、删除、更新、查询】
2020/05/26 PHP
JS 文件传参及处理技巧分析
2010/05/13 Javascript
javascript 仿QQ滑动菜单效果代码
2010/09/03 Javascript
滚动条响应鼠标滑轮事件实现上下滚动的js代码
2014/06/30 Javascript
jquery获取多个checkbox的值异步提交给php
2015/07/07 Javascript
一道常被人轻视的web前端常见面试题(JS)
2016/02/15 Javascript
基于jquery编写分页插件
2016/03/07 Javascript
Bootstrap树形菜单插件TreeView.js使用方法详解
2016/11/01 Javascript
JS弹性运动实现方法分析
2016/12/15 Javascript
jQuery完成表单验证的实例代码(纯代码)
2017/09/30 jQuery
jQuery md5加密插件jQuery.md5.js用法示例
2018/08/24 jQuery
vue项目前端错误收集之sentry教程详解
2019/05/27 Javascript
JavaScript字符和ASCII实现互相转换
2020/06/03 Javascript
vue 如何从单页应用改造成多页应用
2020/10/23 Javascript
微信小程序自定义底部弹出框动画
2020/11/18 Javascript
详解Vue的异步更新实现原理
2020/12/22 Vue.js
原生jQuery实现只显示年份下拉框
2020/12/24 jQuery
[00:37]DOTA2上海特级锦标赛 OG战队宣传片
2016/03/03 DOTA
python xlsxwriter创建excel图表的方法
2018/06/11 Python
在python中使用requests 模拟浏览器发送请求数据的方法
2018/12/26 Python
详解python selenium 爬取网易云音乐歌单名
2019/03/28 Python
python+opencv实现摄像头调用的方法
2019/06/22 Python
在jupyter notebook中调用.ipynb文件方式
2020/04/14 Python
Django在Model保存前记录日志实例
2020/05/14 Python
Toppik顶丰增发纤维官网:解决头发稀疏
2017/12/30 全球购物
矿泉水广告词
2014/03/20 职场文书
检讨书范文300字
2015/01/28 职场文书
2016年学校“6﹒26国际禁毒日”宣传活动总结
2016/04/05 职场文书
工作汇报材料难写?方法都在这里了!
2019/07/01 职场文书