2020年需要學習的十大JavaScript框架
無論您是要開發前端Web應用程序還是后端Web應用程序,JavaScript無處不在。 有許多出色的JavaScript框架,而幾乎每天都有新的JavaScript框架出現。
如果您想開始從事JavaScript開發的職業,或者您是一位經驗豐富的JavaScript開發人員,并且現在想提高自己的技術技能,那么應該學習哪個框架? 在這里,我根據以下標準列出了最重要的JavaScript框架:
- 基于可靠的網站(GitHub,JavaScript狀態,NPM趨勢,Google趨勢)而受歡迎。
- 主流并建立在社區和行業中。
- 一個龐大而充滿活力的社區為他們提供了支持。
- 仍然強大,并且不會像jQuery或AngularJS那樣消失。
另外,我將包括用于前端和后端開發的框架。
我在此列表中添加了純JavaScript框架,但React和Node.js除外。 React是僅實現視圖層的庫。但是實際上,React Core庫是整個React生態系統的一部分,其中包括其他React庫(例如React Router)和第三方庫。此外," JavaScript的狀態"和" Stack Overflow開發人員調查"等聲譽卓著的網站將React列為Web框架類別。我還感到,如果不包括最基本的Web框架/庫,我只能部分地了解JavaScript的情況。
此外,Node.js是JavaScript運行時,而不是框架。但是Node.js提供了一個完整的基于JavaScript的后端開發生態系統,許多排名(例如" Stack Overflow開發人員調查")通常將Node.js與Ruby on Rails,Django一起歸入后端框架類別。 ,PHP Laravel。我知道有些純粹主義者可能不喜歡它,因此我強烈反對將React和Node.js包含在此列表中。但是,為了全面了解JavaScript,我明智地選擇了將React和Node.js包含在此列表中。
1. React
React并不是最早的基于JavaScript的破壞性Web框架之一。 但這是最具破壞性和影響力的基于JavaScript的Web框架。 Jordan Walke和一組Facebook工程師于2013年創建了React,將其作為具有單向數據流的基于組件的Web框架,并永遠改變了前端Web開發。 它還引入了許多其他概念,例如函數式,聲明式編程,不可變狀態,這在前端開發中并不常見。 React的另一個突破是引入了虛擬DOM,它提供了更好的用戶體驗和性能提升。
今天,React是迄今為止最主要的Web框架,并且沒有很快消失的跡象。
5個主要功能:
- React是最簡單的框架之一,其中React-Core只是View層的基于組件的庫。
- React的口號是:"學習一次,隨處寫"。 軟件工程師可以使用React開發Web(React),移動App(React Native),桌面App(Electron)和后端開發(使用Node.js)。
- React提供了一流的服務器端渲染(SSR),并具有出色的SEO支持。
- Tech Giant Facebook的需求推動了React開發。 好的方面是,React功能已經過26億Facebook用戶的測試。
- React不斷自我完善,最近推出了React-Fiber(更好的并發性),React鉤子(更少的樣板代碼),Suspense(更好的渲染)。
人氣:
每周有800萬次下載,React是迄今為止下載次數最多的前端JavaScript框架。 另外,最近五年的NPM趨勢表明,React在前端框架中是明顯的贏家,在其他框架方面具有領先優勢:
> Source: NPM trends
它是GitHub中排名第二的JavaScript框架,貢獻者數量第二高:
> Source: GitHub
" JavaScript狀況"調查使React在滿意度和意識方面處于最高位置:
> Source: The State of JavaScript, 2019
2019年StackOverflow開發人員調查將React列為Web開發中第二大最常用的框架:
> Source: StackOverflow Developer Survey, 2019
它也是2019年最受歡迎的前端框架:
> Source: StackOverflow developer survey, 2019
2. Node.js
盡管曾嘗試過在服務器端開發中使用JavaScript,但它們并不是很流行。 在2009年,Ryan Dahl創建了異步的,事件驅動的服務器端JavaScript運行時Node.js,并將JavaScript引入了后端開發的未知領域。 Ryan Dahl使用了流行的JavaScript Engine V8和C ++庫。 從那時起,Node.js和JavaScript的普及率直線上升。 借助Node Package Manager NPM和無數的框架/庫,Node.js超越了許多其他已建立的服務器端框架。 由于其異步事件驅動的特性和輕量級的,快速的運行時,Node.js特別適合于I / O繁重的應用程序,例如Web,IoT,Serverless。
今天,Node.js不再是框架,而是服務器端JavaScript開發的整個生態系統。 通過許多創新(例如NPM,模塊系統),Node.js成為了將JavaScript改進為一種編程語言并提高JavaScript受歡迎程度的主要動力之一。
5個主要功能:
- Node.js是一個異步的,事件驅動的JavaScript框架,用于構建可伸縮的網絡應用程序。
- Node.js是跨平臺的,將Java的"一次編寫,隨處運行"提升到了一個新水平。 它可以在Windows,Linux,macOS,iOS,Android和許多其他平臺上運行。
- 由于其相對較小的尺寸和更快的啟動速度,Node.js大量用于無服務器計算中。
- Node.js由OpenJS Foundation運行,是一個開放源代碼框架,不受一家技術公司的控制。 如今,幾乎所有技術巨頭(IBM,Microsoft,Netflix)都使用和支持Node.js。
- 它本機支持JavaScript和所有其他"編譯為JS"語言,如TypeScript,CoffeeScript,Dart。 Node.js還支持Web的下一個巨大功能:WebAssembly。
人氣:
盡管Node.js是JavaScript項目中排名第三的,但它在GitHub中的貢獻者數量最多:
> Source: GitHub
StackOverflow開發人員調查2019已將Node.js放在其他框架類別的首位:
> Source: StackOverflow developer survey, 2019
此外,2019年Stack Overflow開發者調查將Node.js放置為第六最受歡迎的框架:
> Source: StackOverflow developer survey, 2019
從最近十年的Google趨勢數據來看,很明顯,Node.js已經超越并超越了其他流行的服務器端框架,例如PHP Laravel,Django和ASP.NET。
> Source: Google Trends
3. Vue.js
在現代網絡框架由Giant Tech公司支持的情況下,Vue.js是一個例外。 2014年,前Google工程師Evan You決定將AngularJS(視圖層)的好部分和React(虛擬DOM)的好部分結合起來,并創建了Vue.js。 如今,Vue.js是最流行的基于JavaScript的Web框架之一。 Evan You的主要設計目標之一是降低基于JavaScript的前端開發的障礙。 Vue.js是最簡單的前端框架之一,開發人員可以在其中輕松編寫SPA應用程序。
開發人員可以將Vue.js用作帶有路由的端到端框架,狀態管理(如Angular)或僅用作視圖層(如React)。 它還提供了像Angular這樣的雙向數據綁定,以及額外的反應性,以及像React一樣使用Virtual DOM進行渲染。
5個主要功能:
- Vue.js提供了漸進式的應用程序開發和同類最佳的文檔。 如果您擁有大型的舊式JavaScript代碼庫,則可以使用Vue.js逐步實現代碼庫的現代化。
- Vue.js既可以用作端到端的框架,也可以用作帶有狀態管理的View層。
- 它提供了響應式雙向數據綁定(如Angular)和虛擬DOM,事件源(如React)。
- Vue.js對JavaScript和TypeScript具有同等的支持。
- Vue.js正在對即將推出的Vue.js 3.0進行重大改進和改進。
人氣:
Vue.js是最受歡迎的GitHub項目,如下所示:
> Source: GitHub
Vue.js最近在業界得到了廣泛采用,這可以從NPM的大量下載和趕上Angular上看出:
> Source: NPM trends
根據2019年StackOverflow Developer調查,Vue.js在所有Web框架中排名第七:
> Source: StackOverflow developer survey, 2019
此外,2019年StackOverflow開發人員調查將Vue.js列為第二受歡迎的Web框架:
> Source: StackOverflow developer survey, 2019
" JavaScript狀況"調查將Vue.js的興趣排在第二位:
> Source: The State of JavaScript, 2019
4. Angular
在AngularJS中,Google在2010年創建了最早的基于JavaScript的熱門前端框架之一。但是,一旦Facebook發布React,它就暴露了AngularJS的設計缺陷,并迅速成為過時的框架。 結果,Google團隊創建了一個全新的SPA框架,并于2016年以Angular的形式發布。盡管Angular和AngularJS具有相似的名稱,但實際上它們是兩個不同的框架。 與React不同,它是一個端到端框架,具有"開箱即用"的支持,可以開發企業級Web應用程序。 此外,Angular是第一個包含TypeScript的重要框架,并且在使TypeScript流行方面發揮了重要作用。
今天,在炒作和興趣方面,Angular落后于React,Vue.js或Svelte。 但是,這是一個久經考驗且可靠的企業級框架,將在社區中使用很多年。
5個主要功能:
- Angular.js是一個端到端框架,具有"開箱即用"的支持來開發企業應用程序。 在Angular CLI中,它具有JavaScript環境中最好的命令行工具之一。
- 使用TypeScript并將模板與樣式和業務邏輯分開,它特別適合于企業級的大型代碼庫。
- 從本質上講,它是具有DOM清理等內置功能的最安全的前端框架。
- 盡管Google支持Angular的方式與Facebook支持React的方式不同,但它仍然投入了足夠的資源,因此Angular仍然是一個有吸引力的創新框架。 最近,它增加了延遲加載,差異加載以縮短模塊的加載時間。
- 在Angular 9中,它發布了新的渲染引擎Ivy,以改善啟動時間,響應時間并減小包大小。
人氣:
如果我們考慮GitHub星號,那么它是第4最受歡迎的JavaScript框架,如下所示:
> Source: GitHub
Angular已在行業中被廣泛采用,從而彌補了其不受歡迎的不足,因為它在NPM下載方面領先于廣受歡迎的Vue.js:
> Source: NPM trends
2019年StackOverflow開發者調查在所有Web框架中將Angular排名為第三位:
> Source: StackOverflow developer survey, 2019
根據2019年的JavaScript狀態調查,Angular在知名度方面排名第二:
> Source: The State of JavaScript, 2019
5. Experss
當Node.js于2009年出現時,TJ Holowaychuk已基于簡約的Web Framework Sinatra創建了Express.js。 它是開發Web應用程序和REST API的簡約Web框架。 它也很少自以為是,而且速度很快。 許多其他基于JavaScript的Web框架都基于Express。
如今,Express.js是最流行的基于JavaScript的Web應用程序框架。
5個主要功能:
- Express.js幾乎是默認的JavaScript Server Side框架。
- Express是具有中間件,路由,模板的完整應用程序框架。
- Express通過支持14個以上模板引擎的View系統支持MVC模式。
- 它還提供了強大的路由。
- Express還支持內容協商。
人氣:
這是最流行的基于JavaScript的后端框架,從GitHub明星那里可以明顯看出:
> Source: GitHub
每周,Express.js的下載量超過一千萬,是迄今為止下載量最高的JavaScript框架:
> Source: NPM trends
" JavaScript狀況"調查連續三年(2017年,2018年,2019年)將Express.js評為頂級JavaScript服務器端框架:
> Source: The State of JavaScript, 2019
2019年StackOverflow開發人員調查將Express評為2019年最受歡迎的Web框架和最受歡迎的JavaScript后端框架第5名:
> Source: StackOverflow Developer Survey, 2019
6. Next.js
React是一個非常簡單的框架,其中React-Core僅提供視圖層。 始終需要基于React的端到端,自以為是的框架。 Tim Neutkens和荷蘭Zeit公司的一組軟件工程師創建了Next.js,將其作為React和Node.js之上的端到端,更高級別的Web框架。 Next.js同時提供用于Web,桌面和移動設備的服務器呈現和靜態網站。
5個主要功能:
- Next.js建立在兩個最流行且經過嚴格處理的JavaScript框架上:React和Node.js。
- 它還提供"一次構建,可在任何地方運行",即Next.js可以在Web,移動和桌面上運行。
- Next.js提供出色的服務器端渲染,并具有出色的SEO支持和快速啟動。
- 它提供自動代碼拆分和基于文件系統的路由。
- 它還支持易于使用的數據獲取和內置CSS支持。
人氣:
就GitHub明星而言,它是第六受歡迎的JavaScript框架和第二受歡迎的JavaScript后端框架:
> Source: GitHub
在過去的幾年中,Next.js的受歡迎程度猛增,下載量不斷增長表明:
> Source: NPM trends
根據" JavaScript的現狀" 2019年的報道,Next.js連續兩年(2018年,2019年)成為第二令人滿意的JavaScript后端框架:
> Source: The State of JavaScript, 2019
7. Meteor
2012年,一組工程師創建了Meteor,它是基于Node.js的同構,開源的全棧JavaScript框架。 它還支持為Web,移動,桌面平臺構建端到端應用程序,并與React,Vue.js,Angular,Svelte等流行的前端框架很好地集成。 它也是一個"包含電池"框架,具有對企業級應用程序開發的"開箱即用"支持。
5個主要功能:
- Meteor是一個用于開發完整堆棧的全棧框架:前端到后端。
- 對于前端開發,它具有自己的模板引擎。 但是開發人員可以將Meteor與其他流行的前端框架(例如Angular,React,Vue.js或Svelte)一起使用。
- 它是一個跨平臺的框架,可以為Web,移動和桌面開發應用程序。
- Meteor具有集成的JavaScript堆棧,可輕松實現各種集成技術(例如MongoDB數據庫,React前端)。
- 這是一個同構平臺,在客戶端和服務器端共享相同的API。
人氣:
根據GitHub明星的數量,它是第七大最受歡迎的JavaScript框架:
> Source: GitHub
盡管狀態不斷下降,但" JavaScript狀態"調查已將Meteor列為第七大最受歡迎的JavaScript框架:
> Source: The State of JavaScript, 2019
8. Svelte
在2016年,一位Guardian軟件工程師Rich Harris提出了開創性的想法,即開發一個沒有特定于框架的運行時的JavaScript框架,并發布了Svelte。 想法是使用Svelte編譯器,該編譯器將特定于框架的代碼編譯為普通的JavaScript,HTML,CSS,并將編譯后的代碼呈現給瀏覽器。 盡管該概念在軟件開發中并不陌生,但在前端開發中卻是未知領域。 Svelte的另一個重要貢獻是增加了對反應性的一流支持,從而在沒有虛擬DOM的情況下帶來了更快,更好的性能。 如今,它可以說是最熱門的前端框架,在業界具有巨大的吸引力和吸引力。
5個主要功能:
- 它是一個編譯時框架,不需要任何特定于框架的運行時。 在所有框架中,它具有最小的捆綁包大小。
- Svelte通過反應式編程執行DOM渲染,這通常比Virtual DOM快。 結果,Svelte提供了所有框架中最快的渲染。
- Svelte只是一個像React-Core一樣的View層,它是一個不受限制的框架。
- Svelte具有出色的SEO支持,同時支持客戶端和服務器端渲染。
- 開發人員可以使用Svelte來開發Web應用程序,跨平臺移動應用程序開發或桌面應用程序開發。
人氣:
Svelte自2018年發布第2版以來一直很受歡迎,就GitHub明星而言排名第8:
> Source: GitHub
從NPM趨勢可以明顯看出,在過去的幾年中,Svelte的行業采用率正在上升。
> Source: NPM trends
社區和行業都對Svelte表現出了極大的興趣,這顯然是" JavaScript狀態"調查將Svelte在興趣方面排名第一的原因:
> Source: The State of JavaScript, 2019
9. koa
在2013年,由TJ Holowaychuk領導的Express.js的核心成員創建了Koa,它是一種輕量級,現代,表達性強且健壯的中間件框架,用于Web應用程序和API。 Koa是高度模塊化的,帶有沒有中間件的微型Core。 但是,中間件可以作為單獨的模塊使用。
5個主要功能:
- Koa具有輕巧,較小的Core,沒有現成的中間件捆綁包。
- Koa具有高度模塊化的體系結構,并提供可插拔的中間件模塊。
- Koa以類似堆棧的方式支持級聯中間件,該中間件允許在下游執行操作,然后在上游處理響應。
- Koa使用async / await而不是回調,并支持更整潔,表現力更好的錯誤處理代碼。
- 在性能方面,它優于Express.js。
人氣:
Koa還是一個非常流行的基于JavaScript的后端框架,在GitHub明星方面排名第9:
> Source: GitHub
從每周的大量下載中可以明顯看出,Koa在該行業中也被大量使用:
> Source: NPM trends
JavaScript狀態調查將Koa列為第五個最令人滿意的JavaScript后端框架:
> Source: The State of JavaScript, 2019
10. Ember.js
受Ruby on Rails原則" Convention over Configuration"的啟發,Apple的Yehuda Katz在2012年將Ember.js創建為一個備受好評的端到端框架。Ember.js是一個嚴格向后兼容的框架,未引入重大突破。 自成立以來。 在那個時代的其他框架(Backbone.js,AngularJS)流行度下降的地方,Ember.js仍在提供可靠,高效的框架來滿足現代前端開發的需求。
5個主要功能:
- 端到端自以為是的凝聚力框架,重點是"配置公約"。
- Ember代替了一個技術巨頭,得到了像LinkedIn,Yahoo等幾家技術巨頭的支持。 因此,它不受一個公司需求的驅動。
- Ember的數據庫最好是一次跨多個源訪問數據并建立異步關系的數據庫。
- 在Ember CLI中,它具有所有JavaScript框架中最好的CLI,可幫助構建并生成具有正確結構(包括所有依賴項)的所有必要代碼。
- 在其最新版本Ember Octane中,它引入了HTML優先和組件優先的方法,并改進了對狀態管理和反應性的支持。
人氣:
Ember.js是JavaScript框架中排名第十的GitHub項目:
> Source: GitHub
Ember.js最近受到業界的關注,并且每周有超過100000次下載:
> Source: NPM trends
根據" JavaScript狀況"調查,Ember.js在知名度方面排名第四:
> Source: The State of JavaScript, 2019