根據(jù)Stack Overflow 2018開發(fā)者調(diào)查報告,JavaScript是目前使用最廣泛的編程語言之一。感謝它不斷發(fā)展的框架生態(tài)系統(tǒng),為復(fù)雜和具有挑戰(zhàn)性的問題找到解決方案。多年來,業(yè)界已經(jīng)發(fā)布了大量JavaScript框架,怎樣進行選擇可能是一個挑戰(zhàn)。
1. React
React是2019年最受喜愛的JavaScript的工程。每個人似乎都在談?wù)揜eactJS,2018年出席的每個會議上,至少有2個人是在討論React。React是開源的,主要是由Facebook借助其他公司的主要技術(shù)開發(fā)出來的。React描述自己是一個JavaScript庫,用于構(gòu)建用戶界面。
React在MVC中,主要是View。它完全專注于MVC那部分,無視應(yīng)用程序的其它部分。它提供了一個成分層,可以更容易使用UI元素,并將它們組合在一起。它抽象了DOM,使其擅長于優(yōu)化渲染,并允許使用node.js來表述React;它實現(xiàn)了一個單向靈活的數(shù)據(jù)流,使得它更容易理解和使用其他框架。
2. Vue
Vue是Evan You在Google工作后使用AngularJS為多個項目中創(chuàng)建的。它在2018年首次發(fā)布,Evan分享了他創(chuàng)建Vue的動機,他說:“我想,如果我能提取出我真正喜歡Angular的那部分,然后構(gòu)建一些真正輕量級的東西會怎么樣呢?”Vue繼續(xù)在JavaScript開發(fā)人員中得到廣泛采用,這種趨勢應(yīng)該還會繼續(xù)下去。根據(jù)npm調(diào)查,一些開發(fā)人員更喜歡Vue而不是React,因為他們覺得“在保持可擴展性的同時更容易上手”。
Vue是一個允許開發(fā)人員構(gòu)建交互式Web界面的庫。它提供類似于React的數(shù)據(jù)反應(yīng)組件,具有簡單靈活的API。與React或Angular不同,Vue的一個好處是它產(chǎn)生干凈的HTML輸出。其他JavaScript庫往往會在代碼中留下散布著額外屬性和類的HTML,而Vue會刪除它們以產(chǎn)生干凈的語義輸出。它通過官方維護的支持庫和包為復(fù)雜應(yīng)用程序提供高級功能,如路由,狀態(tài)管理和構(gòu)建工具。
3. Angular
Angular是最強大、最高效和最開源的JavaScript框架之一。該框架由Google運營,用于開發(fā)單頁應(yīng)用(SPA)。這個開發(fā)框架之所以出名,主要是因為它為開發(fā)人員提供了將JavaScript與HTML和CSS結(jié)合起來的最佳條件。有超過50萬個網(wǎng)站如Google.com,Youtube.com等正在使用Angular。
AngularJS是一個MVC類型的框架,它提供了雙向的數(shù)據(jù)模型和視圖之間的綁定。這種數(shù)據(jù)綁定,允許在雙方只要有一個數(shù)據(jù)變化時,自動進行更新,它可以構(gòu)建可重用的View組件。同時,它也提供了一個服務(wù)框架,以便前后端服務(wù)的輕松通信。
什么時候使用AngularJS?當你正在建立一個復(fù)雜的Web前端應(yīng)用程序,并且需要一個模塊化的框架來處理一切時。
4. Node.js
Node.js是一個基于GoogleChrome的JavaScript引擎構(gòu)建的開源服務(wù)器端平臺。使用NodeJS的網(wǎng)站數(shù)量已超過84 000個。它是下載量最大的用于執(zhí)行JavaScript代碼的跨平臺運行環(huán)境。
Node.js遵循“JavaScript無處不在”的范例,通過圍繞單一編程語言統(tǒng)一Web應(yīng)用程序開發(fā),而不是服務(wù)器端和客戶端腳本的不同語言。在JSConf2018中,Dahl描述了他的服務(wù)器端JavaScript運行時引擎的一些限制。其架構(gòu)的許多部分都受到限制,包括安全性以及如何管理模塊。作為解決方案,他引入了一個名為Deno的新軟件項目,這是一個V8 JavaScript引擎上的安全TypeScript運行,旨在糾正Node.js中的一些設(shè)計缺陷。
5. React Native
React Native的故事始于2013年夏天,當時是Facebook的內(nèi)部黑客馬拉松項目,后來在2015年開源。React Native是一個JavaScript框架,用于構(gòu)建原生移動應(yīng)用程序。正如您可能已經(jīng)從名稱中猜到的,React Native是基于React的。之所以稱之為“原生”,是因為使用React Native構(gòu)建的UI由原生UI小部件組成,這些小部件看上去和感覺上都與使用原生語言構(gòu)建的應(yīng)用程序一致。
本質(zhì)上,React Native將用Javascript/JSX編寫的UI定義轉(zhuǎn)換成適合目標平臺的原生視圖層次結(jié)構(gòu)。例如,如果正在構(gòu)建一個iOS應(yīng)用程序,會將文本原語轉(zhuǎn)換為原生iOS UIView,在Android中,它會生成原生TextView。因此,即使我們正在編寫JavaScript應(yīng)用程序,也不會在移動設(shè)備的shell中嵌入Web應(yīng)用程序。因為我們正在獲得一個“真正的原生應(yīng)用”。
6. Three.JS
Three.JS是3D計算機圖形學(xué)框架之一。
Three.JS利用WebGL引擎,在Web瀏覽器中創(chuàng)建漂亮的3D計算機圖形。它擁有很多十分受歡迎的功能,其中包括特效和場景、相機、蒙皮網(wǎng)格和變形混合網(wǎng)格動畫以及燈光等。
其龐大的社區(qū)集合了大量程序員和用戶,非常的活躍,因此這個項目將會穩(wěn)步發(fā)展。
7. Ionic Framework
Ionic Framework由DriftyCo.創(chuàng)建,最初于2013年發(fā)布。它是一個開源的前端SDK,用于使用熟悉的Web技術(shù)開發(fā)混合移動應(yīng)用程序。借助Ionic,能夠構(gòu)建和部署跨多個平臺的應(yīng)用程序,例如原生iOS、Android、桌面和Web作為漸進式Web應(yīng)用程序。
Ionic主要關(guān)注應(yīng)用程序的外觀或UI交互。這并不意味著取代Cordova或JavaScript框架。它仍然需要像Cordova這樣的原生包裝器來將應(yīng)用程序作為移動應(yīng)用程序運行。它使用這些包裝器來訪問主機操作系統(tǒng)功能,如相機、GPS和手電筒等,它由Cordova/Phone Gap等工具包裝。
8.jQuery
jQuery是最古老的JS框架之一。這個框架已經(jīng)存在13年之久,而且它仍然很強大。那么什么是jQuery?
jQuery是一個快速而簡潔的JavaScript庫,由John Resig在2006年創(chuàng)建,它有一個很好的宗旨:寫得少,做得多。它是一個跨瀏覽器的JavaScript庫,旨在簡化HTML的客戶端腳本。目前有超過1 900萬個網(wǎng)站正在使用jQuery。WordPress,F(xiàn)ace book,Google,IBM和其他許多公司都依賴jQuery提供獨一無二的網(wǎng)絡(luò)瀏覽體驗。
9.Backbone.js
Backbone是一個很著名的簡單的框架,融入了一個單一的JavaScript文件。Backbone已經(jīng)流行了一段時間。由Jeremy Ashkenas從CoffeeScript和Underscore框架中開發(fā)出來的。對于追尋小型架構(gòu)的團隊來說,Backbone是特別受歡迎的。因為他們小型的Web應(yīng)用是不需要使用像AngularJS和Ember這樣的大型框架的。
Backbone提供了一個完整的MVC框架和路由。該模型允許鍵-值綁定和處理數(shù)據(jù)變化的事件。Models(和Collections)可以連接到RESTful API中。Views可以聲明事件處理,而路由器則可以非常出色地處理URL和狀態(tài)管理。在建立一個不提供太多功能和非必要復(fù)雜功能的單頁面應(yīng)用時,能提供你需要的所有功能。
10. Ember
Ember是一個獨立的Web應(yīng)用程序框架,專注于編碼效率。Ember是比較受歡迎的,核心團隊包括牛人Yehuda Katz,他是Rubyon Rails和jQuery的核心團隊之一。Ember描述自己為一個不浪費你的時間,能用于創(chuàng)建偉大Web應(yīng)用程序的框架。這是非常有主見,這也使你有了更多選擇。
Ember也是一個MVC框架。它包括一個模板和視圖引擎,保證了數(shù)據(jù)變化時的自動更新,就像AngularJS,Backbone和React一樣。它包括的概念Web組件,讓你用自己的標簽來擴展HTML(就像AngularJS)。它也有一個路由和模型引擎,能夠和RESTful API協(xié)同工作。