12種JavaScript常用的MVC框架比較分析
本文詳細(xì)講述了12種JavaScript常用的MVC框架。分享給大家供大家參考,具體如下:
Gordon L. Hempton是西雅圖的一位黑客和設(shè)計(jì)師,他花費(fèi)了幾個(gè)月的時(shí)間研究和比較了12種流行的JavaScript MVC框架,并在博客中總結(jié)了每種框架的優(yōu)缺點(diǎn),最終的結(jié)果是,Ember.js勝出。
此次比較針對(duì)的特性標(biāo)準(zhǔn)有四種,分別是:
① UI綁定(UI Bindings)
② 復(fù)合視圖(Composed Views)
③ Web表現(xiàn)層(Web Presentation Layer)
④ 與其他框架良好協(xié)作(Plays Nicely with Others)
對(duì)于各種JavaScript MVC框架,Gordon都總結(jié)了優(yōu)缺點(diǎn):
1. Backbone.js ——優(yōu)點(diǎn):強(qiáng)大的社區(qū),強(qiáng)勁的勢(shì)頭;缺點(diǎn):抽象較弱,很多功能亟待增加。
2. SproutCore ——優(yōu)點(diǎn):對(duì)綁定的支持,可靠的社區(qū),大量特性;缺點(diǎn):過度規(guī)范,難以和不需要的特性解耦。
3. Sammy.js ——優(yōu)點(diǎn):易于學(xué)習(xí),更容易和現(xiàn)存的服務(wù)端應(yīng)用程序整合;缺點(diǎn):過于簡(jiǎn)單,無法應(yīng)用于大型應(yīng)用程序中。
4. Spine.js ——優(yōu)點(diǎn):輕量級(jí),文檔很完備;缺點(diǎn):它的核心概念“spine”是異步的用戶界面,這意味著理想狀況用戶界面永遠(yuǎn)不會(huì)發(fā)生堵塞,而這個(gè)基礎(chǔ)有缺陷。
5. Cappuccino ——優(yōu)點(diǎn):大型深思熟慮后的框架,良好的社區(qū),很棒的繼承模型;缺點(diǎn):由iOS開發(fā)者創(chuàng)建,使用JavaScript模擬Objective-C。
6. Knockout.js ——優(yōu)點(diǎn):對(duì)綁定的支持,完備的文檔和教程;缺點(diǎn):綁定語(yǔ)法拙劣,缺少統(tǒng)一的視圖組件層級(jí)關(guān)系。
7. Javascript MVC ——優(yōu)點(diǎn):可靠的社區(qū);缺點(diǎn):基于字符串的繼承模型很差,控制器與視圖關(guān)系過密而缺少綁定。
8. GWT(Google Web Toolkit) ——優(yōu)點(diǎn):全面的框架,良好的社區(qū),可靠的基于Java的組件繼承模型;缺點(diǎn):可能無法經(jīng)受時(shí)間的考驗(yàn),另外,Java在客戶端上的抽象有些笨拙。
9. Google Closure ——優(yōu)點(diǎn):很好的基于組件的UI組合系統(tǒng)。缺點(diǎn):缺少UI綁定支持。
10. Ember.js ——優(yōu)點(diǎn):很豐富的模板系統(tǒng),擁有復(fù)合視圖和UI綁定;缺點(diǎn):相對(duì)較新,文檔不夠完備。
11. Angular.js ——優(yōu)點(diǎn):對(duì)模板范圍和控制器設(shè)計(jì)有很好的考慮,擁有依賴注入系統(tǒng),支持豐富的UI綁定語(yǔ)法。缺點(diǎn):代碼的模塊性不強(qiáng),視圖的模塊化也不夠。
12. Batman.js ——優(yōu)點(diǎn):代碼清晰,綁定、持久化的方法簡(jiǎn)單;缺點(diǎn):使用了單例控制器。
經(jīng)過對(duì)以上各種Javascript MVC框架特性的比較,Gordon認(rèn)為只有Ember.js能夠完全滿足他的要求,從而成為他最終選用的框架。
你是否也使用過某些JavaScript MVC框架呢?歡迎參與討論。
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
相關(guān)文章
js實(shí)現(xiàn)自動(dòng)播放勻速輪播圖
這篇文章主要介紹了js實(shí)現(xiàn)自動(dòng)播放勻速輪播圖,帶勻速運(yùn)動(dòng)函數(shù)封裝,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02
JavaScript電子時(shí)鐘倒計(jì)時(shí)
這篇文章主要介紹了JavaScript電子時(shí)鐘倒計(jì)時(shí)的實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的朋友可以參考一下2016-01-01
微信小程序?qū)崿F(xiàn)授權(quán)登錄之獲取用戶信息
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)授權(quán)登錄之獲取用戶信息,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05
echartjs實(shí)現(xiàn)cross十星輔助線實(shí)現(xiàn)示例詳解
這篇文章主要為大家介紹了echartjs實(shí)現(xiàn)cross十星輔助線實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
JS+CSS簡(jiǎn)單樹形菜單實(shí)現(xiàn)方法
這篇文章主要介紹了JS+CSS簡(jiǎn)單樹形菜單實(shí)現(xiàn)方法,涉及JavaScript結(jié)合css動(dòng)態(tài)操作頁(yè)面元素結(jié)點(diǎn)的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09
JavaScript設(shè)計(jì)模式之單例模式簡(jiǎn)單實(shí)例教程
這篇文章主要介紹了JavaScript設(shè)計(jì)模式之單例模式,結(jié)合簡(jiǎn)單實(shí)例形式分析了單例模式的概念、功能及javascript定義與使用單例模式相關(guān)操作技巧,需要的朋友可以參考下2018-07-07
js中各種數(shù)據(jù)類型檢測(cè)和判定的實(shí)戰(zhàn)示例
typeof一般被用于判斷一個(gè)變量的類型,我們可以利用typeof來判斷number,string,object,boolean,function,undefined,symbol這七種類型,下面這篇文章主要給大家介紹了關(guān)于js中各種數(shù)據(jù)類型檢測(cè)和判定的相關(guān)資料,需要的朋友可以參考下2022-11-11

