JavaScript MV*框架最值得關(guān)注的七個(gè)亮點(diǎn)
譯文【51CTO.com快譯】作為目前Web領(lǐng)域***人氣的編程語(yǔ)言,JavaScript在發(fā)展之初并不受歡迎——因?yàn)樵O(shè)計(jì)并未考慮到服務(wù)器端編程的實(shí)際需求。然而,隨著用戶體驗(yàn)在Web開發(fā)領(lǐng)域所占比重的持續(xù)提高,專注于設(shè)計(jì)用戶界面的特性愈發(fā)受到重視,這也成為JavaScript如今被廣泛使用的根本原因。而隨著HTML 5與CSS 3在創(chuàng)建適應(yīng)性與響應(yīng)式網(wǎng)站中的作用快速提高,JavaScript亦起到可觀的輔助作用。
目前市面上存在大量有助于建立JavaScript應(yīng)用架構(gòu)的庫(kù)與框架。而MV*正是指那些能夠?qū)崿F(xiàn)MVP與MVVM模式的庫(kù)。其中***且最值得關(guān)注的方案選項(xiàng)包括:
1、Backbone.js
這套框架具備鍵值綁定、自定義事件、集合等模型,且可將這些因素通過(guò)RESTful JSON接口全部接入您的現(xiàn)有API。這套輕量化JavaScript庫(kù)專門用于支持單頁(yè)面Web應(yīng)用。依賴于UnderscoreJS庫(kù)運(yùn)行,后者能夠?yàn)楦黝惓R奐S任務(wù)提供一面重要的實(shí)用功能。在它的幫助下,您的數(shù)據(jù)將作為模型加以表達(dá),并可面向服務(wù)器實(shí)現(xiàn)創(chuàng)建、驗(yàn)證與保存。視圖將顯示該模型的狀態(tài),可通過(guò)事件變更自行觸發(fā)重新渲染。在這方面,Backbone作為重要的結(jié)構(gòu)化方案能夠保證數(shù)據(jù)始終與HTML UI保持同步。
2.Angular.JS
這基本上屬于一套用于為應(yīng)用擴(kuò)展HTML詞匯表的工具集。允許用戶創(chuàng)建自定義HTML標(biāo)簽。Angular當(dāng)中的可復(fù)用組件——即directives——也相當(dāng)強(qiáng)大且能夠幫助用戶創(chuàng)建您自己的語(yǔ)義可復(fù)用HTML語(yǔ)法。Angular會(huì)直接修改頁(yè)面DOM而非添加內(nèi)部HTML代碼,這意味著其速度表現(xiàn)相當(dāng)出色。大家可以通過(guò)Angular采取多種方式實(shí)現(xiàn)同樣的效果,因此該框架能夠廣泛適應(yīng)各類擴(kuò)展樣式與任務(wù)需求。
3.Ember.JS
Ember.JS是一套可用于創(chuàng)建高復(fù)雜度Web應(yīng)用的JS框架。提供大量由Handlebars Templating語(yǔ)言、視圖、模型以及路由機(jī)制編寫而成的模板。這些Handlebars模板通常能夠?qū)崿F(xiàn)自動(dòng)更新,因此您的HTML也可享受到更新收益——包括底層模型的變化。要使用Ember.JS,您不需要編寫任何JS代碼。這套平臺(tái)可以說(shuō)代表著未來(lái)Web平臺(tái)的使用體驗(yàn)水平,提供的各項(xiàng)組件允許用戶創(chuàng)建指向當(dāng)前應(yīng)用的自定義HTML標(biāo)簽。
4.Knockout.JS
這套高人氣JS庫(kù)旨在通過(guò)使用MVVM模式以簡(jiǎn)化JS UI。利用Knockout,基于數(shù)據(jù)的高復(fù)雜度UI的創(chuàng)建工作將變得相當(dāng)簡(jiǎn)單。這套庫(kù)能夠獨(dú)立實(shí)現(xiàn)上述效果,亦可為jQuery等其它庫(kù)提供支持。其最為擅長(zhǎng)的是將各UI元素接入被定義為JS對(duì)象的基礎(chǔ)數(shù)據(jù)模型當(dāng)中,當(dāng)我們對(duì)UI進(jìn)行變更時(shí),對(duì)應(yīng)模型也將自動(dòng)完成更新。
5.Agility.JS
這套框架允許大家編寫出易于維護(hù)且無(wú)需解決基礎(chǔ)設(shè)施運(yùn)行負(fù)擔(dān)即可復(fù)用的瀏覽器代碼。其可幫助開發(fā)者更快編寫出Web應(yīng)用,使用方式與jQuery相同,但同時(shí)亦可降低MVC下各可用對(duì)象的維護(hù)難度。Agility能夠全面支持JS代碼編寫,但其同時(shí)亦不會(huì)強(qiáng)制要求編寫JS代碼。Agility采用單一對(duì)象類型,其中包括一套全模型-視圖組織堆棧。
6.Can.JS
這是一套不斷發(fā)展的客戶端JS架構(gòu)庫(kù)集合,主要目標(biāo)是在創(chuàng)新性與穩(wěn)定性間找到平衡點(diǎn),具體而言即在Web應(yīng)用的大小、易用性、速度、安全性與靈活性間取得平衡點(diǎn)。對(duì)于經(jīng)驗(yàn)豐富的Web開發(fā)者而言,這絕對(duì)是最為出色的庫(kù)選項(xiàng),特別適合開發(fā)項(xiàng)目量龐大的業(yè)務(wù)場(chǎng)景。Can.JS由大量獨(dú)立的軟件包與模塊組成,具體包括can-compute、can-define、can-set、can-connect、can-stache、an-component、can-stache-bindings、、can-route等等。
7.Spine
您是否希望自己的JS應(yīng)用能夠具備最出色的UI?Spine是一款易于使用的輕量化JS框架,旨在幫助開發(fā)者輕松獲取任何可用框架的高質(zhì)量說(shuō)明文檔,其中不包括任何需要配置及主題設(shè)定的復(fù)雜部件。Spine的***優(yōu)勢(shì)在于,其要比之前提到的多數(shù)庫(kù)更為小巧,不含任何集合且必須為對(duì)象標(biāo)識(shí)符設(shè)置ID。
毫無(wú)疑問(wèn),JS MV*框架已經(jīng)成為Web開發(fā)者們打造出色Web設(shè)計(jì)與應(yīng)用的必要資源。這些框架各具特色與優(yōu)勢(shì),您只需要了解其秉性并根據(jù)實(shí)際需要進(jìn)行選取即可。當(dāng)然,在選擇時(shí)除了直接收益之外,大家也應(yīng)當(dāng)考慮各框架的對(duì)應(yīng)社區(qū)支持能力、發(fā)展前景與市場(chǎng)占有率,從而真正與行業(yè)內(nèi)***大的框架一路同行。
原文標(biāo)題:7 of the Latest JavaScript MV* Frameworks
原文作者:Darrel Henry
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】