介紹 14 個 JavaScript 的框架和庫

Javascript 獲得了衆多的技術領導者的擁護和支持,其中一位就是 WordPress 的做者 Matt Mullenweg , 他表示 WordPress 開發者 應該學習 JavaScript , 這也清晰地向 WordPress 社區傳達了 JavaScript 在將來的重要性。 同時,這一觀點也被廣泛接受。向着更先進的技術靠攏與過渡也同時保證了 WordPress 在將來的挑戰中不會落於人後。javascript

JavaScript 同時也是衆多站在開源立場的技術中的佼佼者。與如今所流行的觀點相反,JavaScript 不是一個工程,而是一個由其核心團隊共同制定和維護的開放標準。ECMAScript , 這是另外一個和 JavaScript 相關的名字, 它雖然不是開源的,但它也有一個開放的標準。html

當你在瀏覽 GitHub 的時候你就能夠發現 JavaScript 在當今有多麼流行了。並且就倉庫的數量 而言,JavaScript 絕對位於全部的編程語言當中最頂尖的那一層次。 同時,在 Livecoding.tv 上你也能看出 JavaScript 有多麼突出,這裏的用戶發佈的關於 JavaScript 的視頻的數量比其餘的話題多得多。在寫這篇文章的時候(2016 年末),Livecoding.tv 上已經有 45,919 個 用戶原創的 JavaScript 視頻教程前端

 

熱門的開源 JavaScript 框架和庫

迴歸到主題, 龐大的社區是 JavaScript 的一個得天獨厚的優點,同時這也推進了 JavaScript 的蓬勃發展。這裏有數以百千計的成熟的 JavaScript 框架和庫供開發者使用,同時這些最優秀的框架和庫都是開源的。對當前的 JavaScript 開發者來講,可以使用這些優秀的框架和庫來進行快速開發已是必須技能了。當今的市場須要快速開發,可是,重複造輪子是沒有必要的。不論你是一個 JavaScript 新手仍是一個資深的 JavaScript 開發者,使用框架和庫都能極大提升你的工做效率。java

好了,讓咱們開始吧!node

 

1. Angular.js

Angular.js 是目前最熱門的 JavaScript 框架之一。它用於開發者構建複雜的 web 應用。Angular.js 背後的思想是它的單頁應用 model。同時它 也支持 MVC 架構。在 Angular.js 中 ,開發者能夠在前端中使用 JavaScript 代碼,並從字面上擴展 HTML 詞彙。react

Angular.js 自 2009 年出現以來已經有了很大的改進。Angular 1 當前的穩定版本是 1.5.8/1.2.30 。你也能夠試一試 Angular 2 ,相對於 Angular 1 來講它有了重大的改進,但這個新版本仍未在全球範圍內被廣泛使用。jquery

在 Angular.js 中,數據綁定是完成工做的一個重要概念。在用戶與接口的交互中,當交互完成,view 就會自動更新,隨即新值與 model 交互以確保一切都是同步的。底層的邏輯在 model 中執行完成後,DOM 也會隨即更新。linux

 

2. Backbone.js

複雜 web 應用並不適用於全部場景。一些較簡單的 web 應用框架例如 Backbone.js 就很是適合學習 web app 開發。Backbone.js 是一個簡單的框架,能夠快速方便地構建簡單的 web 應用。和 Angular.js 同樣,Backbone.js 也支持 MVC 。Backbone.js 還有一些其它關鍵特性如路由,RESTful API 支持,適當的狀態管理等等。你甚至還能夠用 Backbone.js 來構建單頁應用。git

當前的穩定版本是 1.3.3,能夠在 GitHub 中找到。angularjs

 

3. D3.js

D3.js 是一個優秀的 JavaScript 庫,它容許開發者建立具備數據處理功能的富 web 頁面。D3.js 使用 SVG、HTML 和 CSS 來實現這一切功能。使用 D3.js ,你能夠更輕鬆地將數據綁定到 DOM 及啓用數據驅動事件。使用 D3.js ,你還能夠建立高質量的數據驅動的 web 頁面來提供一個更易於理解的視覺效果來呈現數據。查看示例 : LCF 符號哈密頓圖 ,由 D3.js 強力驅動。

 

4. React.js

React.js 是一個使用起來頗有趣的 JavaScript 框架。和其它的 JavaScript 框架不一樣,React.js 志在構建一個高可擴展的前端用戶界面。React.js 出現於 2013 年,它採用了 BSD 開源協議。它因其可以開發複雜且漂亮的用戶界面所帶來的優點而迅速發展壯大。

React.js 背後的核心思想是虛擬 DOM 。虛擬 DOM 在客戶端和服務端之間扮演着一箇中間人的角色並帶來了顯著的性能提高。虛擬 DOM 的改變和服務器端 DOM 同樣,只須要更新所需的元素,相對於傳統的 UI 渲染來講極大提高了渲染速度。

你還可使用 Recat 來實現 meterial 風格的設計,使你可以開發具備無與倫比的性能的 web 應用。

 

5. jQuery

jQuery 是一個很是流行的 JavaScript 庫,它擁有衆多特性例如事件處理、動畫等。當你在作一個 web 項目的時候,你不會想要把時間浪費在爲一些簡單的功能寫代碼上。jQuery 爲減小你的工做量提供了一些易於使用的 API 。這些 API 在全部的常見的瀏覽器中都可以使用。使用 jQuery, 你能夠無縫地控制 DOM 以及 Ajax 這樣在近幾年來擁有大量需求的任務。使用 jQuery,開發者沒必要擔憂一些低級的交互,同時可使他們的 web 應用的開發更加容易與迅速。

jQuery 同時便於分離 HTML 和 JavaScript 代碼,使開發者可以編寫簡潔而跨瀏覽器兼容的代碼。而且使用 jQuery 建立的 web 應用在未來也易於改善和擴展。

 

6. Ember.js

Ember.js 是一個 Angular.js 和 React.js 的功能混合體。當你在瀏覽社區的時候你能明顯地感覺到 Ember.js 的熱門程度。Ember.js 的新特性也不斷地在添加。它在數據同步方面與 Angular.js 很像。 雙向的數據交換能夠確保應用的快速性和可擴展性。同時,它還可以幫助開發者建立一些前端元素。

和 React.js 的類似之處在於,Ember.js 提供了一樣的服務器端虛擬 DOM 以確保高性能和高可擴展。同時, Ember.js 提倡簡化代碼,提供了豐富的 API。Ember.js 還有很是優秀的社區。

 

7. Polymer.js

若是你曾想過建立你本身的 HTML5 元素,那麼你可使用 Polymer.js 來作這些事。 Polymer 主要集中於經過給 web 開發者提供建立本身的標籤的功能來提供擴展功能。例如,你能夠建立一個和 HTML5 中的 <video> 相似的具備本身的功能的 <my_video> 元素。

Polymer 在 2013 年被 Google 引入並以 三句版 BSD 協議發佈。

 

8. Three.js

Three.js 又是另外一個 JavaScript 庫,主要用於 3D 效果開發。若是你在作遊戲開發的動畫效果,那麼你能夠利用 Three.js 的優點。Three.js 在底層中使用 WebGL 使 Three.js 能夠輕鬆地被用於在屏幕上渲染 3D 物體。舉一個比較知名的使用 Three.js 的例子就是 HexGLA,這是一個將來派賽車遊戲。

 

9. PhantomJS

使用 JavaScript 工做就意味着和不一樣的瀏覽器打交道,同時,當說起瀏覽器的時候,就不得不討論資源管理。在 PhantomJS 中,因爲有 Headless WebKit 的支持,因此你能夠隨時監測你的 web 應用。Headless WebKit 是 Chrome 和 Safari 使用的渲染引擎中的一部分。

這整個過程是自動化的,你所須要作的只是使用這個 API 來構建你的 web 應用。

 

10. BabylonJS

BabylonJS 與 Three.js 不相伯仲, 提供了建立平滑而強大的 3D web 應用的 JavaScript API。它是開源的,且基於 JavaScript 和 WebGL 。建立一個簡單的 3D 物體,好比一個球體是很是簡單的,你只須要寫短短几行代碼。經過這個庫提供的 文檔,你能夠很好地掌握它的內容。 同時 BabylonJS 的主頁上也提供了一些優秀的 demo 來看成參考。在其官網上你能夠找到這些 Demo。

 

11. Boba.js

Web 應用老是有一個共通的需求,那就是分析。若是你還在苦於將數據的分析與統計插入到 JavaScript 的 web 應用中,那麼你能夠試一下 Boba.js。Boba.js 能夠幫助你將分析的數據插入到你的 web 應用中而且支持舊的 ga.js 。你甚至能夠把數據指標和 Boba.js 集成在一塊兒,只須要依賴 jQuery 便可。

 

12. Underscore.js

Underscore.js 解決了 「當我面對一個空白 HTML 頁面並但願即刻開始工做,我須要什麼」 這個問題。當你剛開始一個項目,你可能會感到失落或者重複一系列你在以前項目中常作的步驟。 爲了簡化開啓一個項目的過程和給你起個頭,Underscore.js 這個 JavaScript 庫給你提供了一系列的方法。例如,你可使用你在以前項目中經常使用的 Backbone.js 中的 suspender 或者 jQuery 的一些方法。

一些實用的幫助例如 「filter」 和 「invoke the map」 能夠給你起個好頭,以助於你儘量快的投入到工做中。 Underscore.js 同時還自帶了一個套件來簡化你的測試工做。

 

13. Meteor.js

Meteor.js 是一個快速構建 JavaScript 應用的框架。它是開源的且它可以用於構建桌面應用、移動應用和 web 應用。Meteor.js 是一個全棧的框架同時容許多平臺的端到端開發。 你可使用 Meteor.js 來實現前端和後端功能,同時它也能密切監視應用的性能。Meteor.js 的社區很是龐大,因此它會有不斷的新特性更新或者是 bug 修復。Meteor.js 也是模塊化的,同時它能配合一些其它的優秀的 API 使用。

 

14. Knockout.js

Knockout.js 在這些庫中多是最被低估的一個。它是一個基於 MIT 開源協議的開源 JavaScript 框架。做者是 Steve Sanderson。它基於 MVVM 模式。

 

值得注意的是: Node.js

Node.js 是一個強有力的 JavaScript 運行時環境。它能夠被用於使用真實世界數據來構建快速且可擴展的應用。它既不是一個框架也不是一個庫,而是一個基於 Google Chrome 的 V8 引擎的運行時環境。你能夠用 Node.js 來建立多元化的 JavaScript 應用,包括單頁應用、即時 web 應用等等。從技術層面上來說,因爲它的事件驅動式架構,因此 Node.js 支持異步 I/O 。這種作法使得它成爲開發高可擴展應用的一個極好的解決方案的選擇。查看 Node.js在 livecoding.tv 上的視頻。

 

總結

JavaScript 是 web 開發中的通用語言。它之因此快速發展不只僅是由於它所提供的內容,更多的是由於它的龐大的開源社區的支持。以上提到的框架和庫對任何一個 JavaScript 開發者來講都是必須知道的。它們都提供了一些途徑來探索 JavaScript 和前端開發。上面說起的大部分框架和庫頻繁地在 Livecoding.tv 上出現,其大部分來自對 JavaScript 及其相關技術感興趣的軟件工程師。

 

 

原文出處:https://linux.cn/article-8383-1.html

相關文章
相關標籤/搜索