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