Gordon L. Hempton是西雅圖的一位黑客和設計師,他花費了幾個月的時間研究和比較了12種流行的JavaScript MVC框架,,并在博客中總結了每種框架的優(yōu)缺點,,最終的結果是,Ember.js勝出,。
此次比較針對的特性標準有四種,,分別是:
- UI綁定(UI Bindings)
- 復合視圖(Composed Views)
- Web表現(xiàn)層(Web Presentation Layer)
- 與其他框架良好協(xié)作(Plays Nicely with Others)
對于各種JavaScript MVC框架,Gordon都總結了優(yōu)缺點:
- Backbone.js——優(yōu)點:強大的社區(qū),,強勁的勢頭,;缺點:抽象較弱,很多功能亟待增加。
- SproutCore——優(yōu)點:對綁定的支持,,可靠的社區(qū),,大量特性;缺點:過度規(guī)范,,難以和不需要的特性解耦,。
- Sammy.js——優(yōu)點:易于學習,更容易和現(xiàn)存的服務端應用程序整合,;缺點:過于簡單,,無法應用于大型應用程序中。
- Spine.js——優(yōu)點:輕量級,,文檔很完備,;缺點:它的核心概念“spine”是異步的用戶界面,這意味著理想狀況用戶界面永遠不會發(fā)生堵塞,,而這個基礎有缺陷,。
- Cappuccino——優(yōu)點:大型深思熟慮后的框架,良好的社區(qū),,很棒的繼承模型,;缺點:由iOS開發(fā)者創(chuàng)建,使用JavaScript模擬Objective-C,。
- Knockout.js——優(yōu)點:對綁定的支持,,完備的文檔和教程;缺點:綁定語法拙劣,,缺少統(tǒng)一的視圖組件層級關系,。
- Javascript MVC——優(yōu)點:可靠的社區(qū);缺點:基于字符串的繼承模型很差,,控制器與視圖關系過密而缺少綁定,。
- GWT(Google Web Toolkit)——優(yōu)點:全面的框架,良好的社區(qū),,可靠的基于Java的組件繼承模型,;缺點:可能無法經(jīng)受時間的考驗,另外,,Java在客戶端上的抽象有些笨拙,。
- Google Closure——優(yōu)點:很好的基于組件的UI組合系統(tǒng)。缺點:缺少UI綁定支持,。
- Ember.js——優(yōu)點:很豐富的模板系統(tǒng),,擁有復合視圖和UI綁定;缺點:相對較新,,文檔不夠完備,。
- Angular.js——優(yōu)點:對模板范圍和控制器設計有很好的考慮,,擁有依賴注入系統(tǒng),支持豐富的UI綁定語法,。缺點:代碼的模塊性不強,,視圖的模塊化也不夠。
- Batman.js——優(yōu)點:代碼清晰,,綁定,、持久化的方法簡單;缺點:使用了單例控制器,。
經(jīng)過對以上各種Javascript MVC框架特性的比較,,Gordon認為只有Ember.js能夠完全滿足他的要求,從而成為他最終選用的框架,。
|