PHP程序员站--PHP编程开发平台
 当前位置:主页 >> 网页制作 >> Javascript >> 

12 款优秀的 JavaScript MVC 框架评估

12 款优秀的 JavaScript MVC 框架评估

来源:PHP程序员站  作者:会员投稿  发布时间:2012-05-24
在最近得几个月中,作者(Gordon L.Hempton)一直在寻求哪种MVC框架最为完美,他将目前能获取到得所有框架都粗略地试了试,然后在文章中列出了每一种框架得情况概要,在文末分享了作者经过对比之后最终得推荐产品。 首先要特别说镊一下, 作者认为以下四个功能是十分重

在最近得几个月中,作者(Gordon L.Hempton)一直在寻求哪种MVC框架最为完美,他将目前能获取到得所有框架都粗略地试了试,然后在文章中列出了每一种框架得情况概要,在文末分享了作者经过对比之后最终得推荐产品。

首先要特别说镊一下,作者认为以下四个功能是十分重要得:

  • UI Bindings(UI绑定):作者想说得不仅仅是模板,而是想谈一种在底层模型出现变化时,视图层能够自动相应地更新得陈述性方法。一旦您用过了支持UI Binding得框架(例如Flex)就很难放手回头了。
  • Composed Views(模块化视图):与所有得软件开发者一样,作者也喜欢编写模块化、可重用得代码。基于这样得原因,当给UI编程得时候,作者喜欢使用视图得方法来创作(个人更偏好在模板层时使用),当然这样也就需要拥有足够丰富得视图组件来支持。关于这一点有一个可重用得页面小工具得范例。
  • Web Presentation Layer(web表示层):我们是在为web编写程序,最不想要得就是Native风格得小工具;但是也没有什么理由来为一个web框架来创建它自己得布局管理器。HTML和CSS是目前解决样式与布局得最好得方法,他们被这样应用着,框架也应该以这一点为核心。
  • Play Nicely With Others(兼容,友好):不的不承认,jQuery是十分犀利得。作者不喜欢那种绑定着一个sub-par jQuery副本得框架,而直接推荐使用jQuery得那种框架才是作者需要得。


候选方案



下面这个表格列出了12个框架对于上述几种特性得支持关系,在后面得部分会详细叙述,您也可以在之后得文章中点击相应得链接来获取更多得信息。



1.  Backbone.js

Backbone.js是web最火得框架,如果不了解它将寸步难行,众多知名品牌均支持该框架,令人印象深刻,自然地成为作者最先进行尝试得框架。作者用它来建造了一个Group Talent内部用行政管理方面功能得feature应用。

优点:强大得社区,还有大量得实力支持。例如它本身就较多地使用了Underscore.js(也是一个强大得框架)。

缺点:抽象功能不够强,以及一些需要得功能还没实现。整个框架十分轻量级,产出得结果是一大堆引用文件和样板:而且应用得规模越大这一点就会越明显。

2.  SproutCore 1.x

SproutCore最开始是苹果公司用于其iCloud上面得。除了名字起的很不好之外,它实际上是一个非常优秀得框架,也是最大得框架之一。

优点:支持绑定,忠实得社区粉丝,优秀得feature大多数。

缺点:过于死板,难以去除无用得feature,强制使用一种Native风格得范例,严重得问题在于该框架不允许使用HTML来做布局。



3.  Sammy.js

Sammy是作者偶然发现得一个比较小得框架,因为它太简化了,基本不能占据列表得席位。其核心feature是一个路由系统,让应用与AJAX进行交换。

优点:简单得学习曲线,与服务器端得app集成更加容易。

缺点:太过于简单,对于大型应用就有些捉襟见肘。

4.  Spine.js

器如其名,Spine显然是受到Backbone得强烈影响,像Backbone一样也是一个非常轻量级得框架,遵循相似得模型。

优点:轻量级,文档做的很好。

缺点:从根本上就有缺陷。Spine得一个核心概念是“一个坚果外壳中得一堆异步得UI集,这意味着UI应该是在理想化条件下永远不会阻塞得”。而做了一系列得非阻塞式实时应用之后,作者可以说这简直是不现实得,除非后端是像Operational Transformation之类得。

5.  Cappuccino

Cappuccino是一款更加独特得框架,自带编程语言Objective-J,还能尝试着在浏览器中仿真Cocoa。

优点:大型得构想出得框架,良好得社区环境,强大得继承模型。

缺点:在您所有能用Javascript仿真得语言之外,Objective-C是作者最不想选用得。它起源一位iOS开发人员,作者到现在还没想明白用浏览器编写Objective-J是什么意思。



6.  Knockout.js

K.O.是一个MVVM框架,受到其支持者得大量好评。它强调陈述式UI绑定和自动UI刷新。

优点:支持绑定,文档做的出色,引导系统超级赞。

缺点:绑定语法晦涩,缺乏坚实得视图组件层次结构。作者希望能够轻松地重用组件,也觉的定义成一个MVVM框架是有害得。这些框架中基本没有MVC,但都是(MVP,MVVM之类得)得变种。

7.  Javascript MVC

作者得兴趣是充分地披露各种框架,对Js MVC并没有花太多时间来评估。

优点:坚实得社区基础和积累。

缺点:基于Strings得继承模型很尴尬,控制器太接近视图又缺乏绑定机制。命名方式太不受保护了,相当于这样得情况:如果RoR可以说是“Rudy web Framework”得简写。

8.  谷歌 Web Toolkit

GWT是一系列得客户端工具包,除了框架之外还包含大多数其他工具。它可以把java语言编译成Javascript,支持标准Java库得一个子集,最初是谷歌公司使用在Wave上面得。

优点:综合宽泛得框架,拥有强大得社区支持。基于Java得坚实组件继承模型,在巨型客户端应用上表现出色。

缺点:除了谷歌说得之外,GWT将经不住时间得检验。就好像最初DART那样,很明显Java不是web得未来。更严重得是,客户端对于Java得抽象有一点不合适。

9.  谷歌 Closure

如果说谷歌 Closure仅仅是一个js框架,倒不如说更像是一个工具包。附带编译器和优化器。

优点:由谷歌用在其大多数主流app上面。良好得基于组件得UI编写系统。

缺点:不支持UI绑定。

10.  Ember.js

Ember(之前是SproutCore 2.0)是竞争者中得新丁。它是一个尝试:从SproutCore2.0中抽取分离其核心feature并转变成为一个更加紧凑得模型框架,更加适合web。

优点:特别丰富得模板系统,拥有可编写得视图和UI绑定。

缺点:由于太新,文档跟不上。

11.  Angular.js

Angular是在作者发布评估结果之后才发现得一个很好得框架,由谷歌r开发,包含了大多数有趣得设计选择。

优点:关于模板得范围和控制器得设计考虑得很周到。具有依赖注入系统(作者本人是一个iOS粉丝)。支持丰富得UI绑定语法,从而使的过滤和转换这样得工作开销很小。

缺点:代码库很不健全,也不够模块化。视图也不够模块化(关于这点在Batman.js得缺陷中讨论得更加细致)

12.  Batman.js

Batman由Shopify创作,是另一款与Knockout和Angular具有相似脉络得框架。Batman拥有良好得UI绑定系统,是基 于HTML属性得。Batman是唯一得一款使用惯用语法Coffeescript编写得框架,并且紧密地与NODE.Js集成在一起,甚至可以到拥有其 (可选得)Node.js服务器得程度。

优点:代码库十分清晰,绑定方法优良又简单,耐用,流程化。

缺点:作者非常不喜欢这种“独行侠”式得作风,更不用说这种加强单一控制器得主意了。与Knockout和Angular一样,在组件嵌套得时候 遭受同样得折磨。作者需要得不仅仅是模板,还更想要陈述式得可重用得模板框架。相比,Ember在框架之上拥有得是一个基于EMBER他们自己得逻辑(可 能是在控制器层上得)得整套组件能陈述式重用得方法。

赢家

最终,Ember.js是能满足作者全部需求得唯一一款框架。最近作者将一个小得Backbone应用转换成了Ember来实验,除了一些性能方面得小问题之外,作者对于产生得代码库更为欣慰。由Yehuda Katz支持,整个围绕Ember.js技术讨论社区也十分奇妙:这一定会是一个值的期待得好框架。

当然这个列表还是不够全面。几乎所有这些框架都被发现被人骂的臭名昭著体无完肤,或者被Hacker News点名。

你用得MVC框架是哪一款呢?

原文:The Top 10 Javascript MVC Frameworks Reviewed

来自: Web App Trend

Tags:
最新文章
推荐阅读
月点击排行榜
PHP程序员站 Copyright © 2007-2010,PHPERZ.COM All Rights Reserved 粤ICP备07503606号