写点什么

12 种 JavaScript MVC 框架之比较

2012 年 5 月 28 日

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 框架呢?欢迎参与讨论。

关注 IT 趋势,承载前沿、深入、有温度的内容。感兴趣的读者可以搜索 ID:laocuixiabian,或者扫描下方二维码加关注。

2012 年 5 月 28 日 18:1043376
用户头像

发布了 340 篇内容, 共 114.2 次阅读, 收获喜欢 4 次。

关注

评论

发布
暂无评论
发现更多内容

爽啊,终于又见面了,字节跳动后端社招面试分享

Java架构之路

Java 程序员 架构 面试 编程语言

AWS CDK的那些事

小铨

AWS AWS CDK

Github一夜登顶的SpringBoot+vue项目太香了

程序员小毕

Java 程序员 架构 面试 springboot

WC,误删数据库了,会被开除吗?

Java架构师迁哥

滴滴OCE惊喜福利!

滴滴云

面试大揭秘!从技术面被“虐”到征服CTO,全凭这份强到离谱的pdf

Java成神之路

Java 程序员 架构 面试 编程语言

蚂蚁金服三面Java面试题全解析,这也太难了吧

Java架构之路

Java 程序员 架构 面试 编程语言

Mysql之索引选择及优化

程序员小毕

Java MySQL 架构 面试 索引

Hashmap的重要变量与高频面试题整理(含答案)

Java王路飞

Java 程序员 架构 面试 hashmap

6面蚂蚁,面试官被窝唬住了,居然开了36K,Java面试怎么就突然简单起来了

Java成神之路

Java 程序员 架构 面试 编程语言

悖论和直觉

架构与源码

数据加密:你应该知道的数仓安全

华为云开发者社区

数据加密 GaussDB(DWS) 数仓安全 透明加密 加密函数

小鼎机器人系统开发功能及源码

系统开发咨询1357O98O718

牛链NB系统开发案例源码

系统开发咨询1357O98O718

爱了! Alibaba技术官甩出的“阿里内部Java成长笔记”,差距对比真的是不止一点点

Java成神之路

Java 程序员 架构 面试 编程语言

redis+docker构建主从环境

小铨

redis Docker redis+docker 主从环境

Java-技术专题-Synchronized和lock区别

李浩宇/Alex

Java

字节跳动5面喜提offer!分享给朋友们面试感受

Java架构之路

Java 程序员 架构 面试 编程语言

架构学习 笔记1

felix徐

架构实战营

上线几小时下载量破百万!无价的这份阿里并发编程图册就这么强势

Crud的程序员

Java 架构 并发编程

【实战问题】-- 缓存穿透之布隆过滤器(1)

秦怀杂货店

缓存 布隆过滤器 java;

数据库与缓存的一致性方案演进

邱学喆

缓存 一致性

Java-技术专题-ConcurrentHashMap读操作分析

李浩宇/Alex

Java ConcurrentHashMap

2021年GitHub上爆火的999页Java面试宝典终开源

比伯

Java 编程 架构 面试 程序人生

Python OpenCV 图像旋转,取经之旅第 11 天

梦想橡皮擦

3月日更

想要精通Redis?这篇文章不得不看,Redis之父带你实战实践

互联网架构师小马

Java 数据库 nosql redis 面试

监控系统-zabbix快速入门

小铨

监控 zabbix

小鼎量化机器人系统开发详情介绍

系统开发咨询1357O98O718

爱了爱了!阿里大牛亲码Java面试速成指南已助我拿到美团的Offer

Java王路飞

Java 编程 架构 面试 美团

如何实现一个简易版的 Spring - 如何实现 Setter 注入

mghio

spring 依赖注入

阿里内产“Redis深度笔记”,从基础深入到源码,不讲一句废话,全是精华!

神奇小汤圆

Java redis 程序员 架构 面试

12种JavaScript MVC框架之比较-InfoQ