三大JavaScript框架對比——AngularJS、BackboneJS和EmberJS

chszs發表於2015-02-01
版權宣告:本文為博主chszs的原創文章,未經博主允許不得轉載。 https://blog.csdn.net/chszs/article/details/43371395

《三大JavaScript框架對比——AngularJS、BackboneJS和EmberJS》

作者:chszs,轉載需註明。部落格主頁:http://blog.csdn.net/chszs

如果有心搜尋的話,你能找出上百種JavaScript框架。當我們要開發一個現代化的、敏捷酷炫的網站時,JavaScript是必備的基礎技術。那麼問題來了,如何在這麼多JavaScript框架中選取最能滿足我們需求的框架?這是一個難題。而且還有很多挑戰,比如要讓網站在不同的客戶端瀏覽器上表現出一致的行為和外觀,這也很不容易。選擇最適合的JavaScript庫來輔助我們的開發,簡化開發難度和減少開發耗時。

最流行的JavaScript庫是jQuery,它提供了一套JavaScript函式,減少了很多開發工作。但是jQuery只是一個輔助庫,真正要在前端MVC模式上有大作為的庫,還是要數下面的三個JavaScript庫:AngularJS、BackboneJS和EmberJS。下面我將對這三個JavaScript庫做對比。

一、介紹

1、AngularJS

AngularJS是一個開源的JavaScript框架,由Google發明並負責演進和維護。AngularJS基於MVC架構,目標是使得開發和測試更富有效率、更加容易。AngularJS擴充套件了傳統的HTML程式碼,使得動態內容能夠和頁面元素進行雙向繫結。AngularJS是一個獨立的框架,這意味著它不依賴於任何別的JavaScript框架。

2、BackboneJS

BackboneJS是一個開源的、輕量級的MVC框架。它誕生於2010年,發展的非常迅速,很快就成長為一種替代笨重的、全功能MVC架構(比如ExtJS)的JavaScript框架。這使得很多國外網際網路公司開始採用它來構建自己的應用服務。比如Pinterest、Flixster、AirBNB等公司。BackboneJS庫提供了一種鍵值繫結、自定義事件的模型,使得Web應用富有結構化,而且還有一套帶列舉函式和檢視的豐富API的集合。BackboneJS庫可以通過RESTful風格的JSON介面來連線你現有的API。BackboneJS庫依賴於Underscore.js庫。

BackboneJS以資料為模型,可以對模型進行建立、驗證、銷燬、儲存到伺服器端等操作。檢視用於顯示模型的狀態,當屬性發生了改變時,能被觸發,檢視可以做出相應的反應,並重現新資訊。BackboneJS是在一套最小的資料結構(模型和集合)和使用者介面(檢視和URL)原語之間的一個嘗試,對於構建JavaScript的Web應用非常有用。

3、EmberJS

EmberJS要追述源頭得回到2007年,它源於SproutCore MVC框架,SproutCore框架最初是由SproutIt公司開發,後來由Apple接手並演進和維護。直到2011年,Yehuda Katz(他是jQuery專案和Ruby on Rails專案的核心貢獻者)發起了EmberJS專案。值得注意的是,EmberJS庫的使用者包括雅虎、Groupon和ZenDesk等網際網路公司。

EmberJS允許開發者建立可擴充套件的單頁Web應用。它提供了一套豐富的Handlebars.js庫,功能包括:提供了物件模型、宣告式的兩路資料繫結、可計算的屬性、自動化更新的模板,還提供了一個路由器來管理應用程式的狀態。

作者:chszs,轉載需註明。部落格主頁:http://blog.csdn.net/chszs

二、比較

1、社群

選擇框架的一個重要因素是框架社群的規模和開發者的數量和活躍度。三者相比,AngularJS社群規模最大、發展更快、社群也最有活力。而且AngularJS在GitHub的跟隨者也更多,在StackOverflow的問答也更多。

2、框架的大小

頁面載入時間是Web應用成功的關鍵因素之一。使用者需要能快速地訪問資訊,影響頁面載入時間的兩個因素:JavaScript框架的大小和啟動它所需的時間。

比較這三個框架的壓縮版:AngularJS 1.2版有105KB,EmberJS 1.9.1版有97KB,BackboneJS 1.1.2版有65KB。但是,AngularJS框架無任何依賴,BackboneJS框架依賴於Underscore.js庫(52KB),EmberJS框架和BackboneJS框架通常需要jQuery庫(82KB)來簡化操作。因此,AngularJS框架的大小才是真正最小的。

3、模板

AngularJS框架和EmberJS框架都包含了一個模板引擎。而BackboneJS框架無模板引擎,開發者需要選擇一個第三方模板引擎整合到專案中。當然,對於BackboneJS框架來說,Underscore.js庫就包含了模板引擎,可以用它。

4、靈活性

有很多JavaScript外掛可以完成很多專門的工作。這是非常有用的,因為每一種框架都無法做到面面俱到。所以,對於框架來說,支援外掛、支援擴充套件就很重要了。三者相比,BackboneJS框架是最靈活的框架,因為它的約定最少,開發者在使用時可以自己做很多決定。EmberJS框架和AngularJS框架在某種程度上來說是靈活的,但不夠靈活。

5、學習曲線

AngularJS框架的開發者可以快速構建Web應用,快速使用雙向繫結,基本上無需學習。但是要深入掌握AngularJS框架,就需要學習一些專業術語,學習曲線也比較陡峭。EmberJS框架的學習曲線就比AngularJS平滑一些。

BackboneJS框架更容易學習,但是要掌握它還需學習Underscore.js庫。

作者:chszs,轉載需註明。部落格主頁:http://blog.csdn.net/chszs

三、結論

沒有最好的JavaScript框架,只有最適合自己的JavaScript框架。一般來說,AngularJS框架相對更好一些,它發展最迅猛,更有活力,有龐大的社群和Google在背後支援。BackboneJS是極簡主義的框架,它體積小、易於學習。


相關文章