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