謝謝邀請!
企業主流的前端框架
1、
Angular.js
github排名:star:59.6K
angular框架算是前端框架中的常青樹,自2009年由MiskoHevery等人創建后,在前端框架中一直占有重要的地位。angular是一款優秀的前端JS框架,被用于Google的多款產品當中。angularJS有著諸多特性,最核心的是:MVVM、模塊化、自動化雙向數據綁定、語義化標簽、依賴注入等等,這些特性都是前端人員非常喜歡的東西。
曾經作為最流行的前端js框架,現在熱度也在慢慢降低,體量大,不適合小項目使用,使得angular不再享受獨寵。
2、Vue.js(三大主流框架之一)
github:star:163K
Vue(讀音/vju?/,類似于view)是一套用于構建用戶界面的漸進式JavaScript框架。與其它大型框架不同的是,Vue被設計為可以自底向上逐層應用。Vue的核心庫只關注視圖層,方便與第三方庫或既有項目整合。
Vue.js是一套構建用戶界面的漸進式框架。與其他重量級框架不同的是,Vue采用自底向上增量開發的設計。Vue的核心庫只關注視圖層,并且非常容易學習,非常容易與其它庫或已有項目整合。另一方面,Vue完全有能力驅動采用單文件組件和Vue生態系統支持的庫開發的復雜單頁應用。Vue.js的目標是通過盡可能簡單的API實現響應的數據綁定和組合的視圖組件[2]。Vue.js自身不是一個全能框架——它只聚焦于視圖層。因此它非常容易學習,非常容易與其它庫或已有項目整合。另一方面,在與相關工具和支持庫一起使用時[3],Vue.js也能完美地驅動復雜的單頁應用。有以下幾個特點:
(1)易用
已經會了HTML、CSS、JavaScript?即刻閱讀指南開始構建應用!
(2)靈活
不斷繁榮的生態系統,可以在一個庫和一套完整框架之間自如伸縮。
(3)高效
20kBmin+gzip運行大小超快虛擬DOM最省心的優化
3、react.js(三大主流框架之一,GitHub排名僅次Vue)
github:star:148K
React是一個Facebook和Instagram用來創建用戶界面的JavaScript庫。很多人認為React是MVC中的V(視圖)。我們創造React是為了解決一個問題:構建隨著時間數據不斷變化的大規模應用程序。為了達到這個目標,React采用下面兩個主要的思想。
有以下幾個特點:
(1)聲明式
React使創建交互式UI變得輕而易舉。為你應用的每一個狀態設計簡潔的視圖,當數據改變時React能有效地更新并正確地渲染組件。
以聲明式編寫UI,可以讓你的代碼更加可靠,且方便調試。
(2)組件化
創建擁有各自狀態的組件,再由這些組件構成更加復雜的UI。
組件邏輯使用JavaScript編寫而非模版,因此你可以輕松地在應用中傳遞數據,并使得狀態與DOM分離。
(3)一次學習,隨處編寫
無論你現在正在使用什么技術棧,你都可以隨時引入React來開發新特性,而不需要重寫現有代碼。React還可以使用Node進行服務器渲染,或使用ReactNative開發原生移動應用。
ReactJSvsAngular5vs
Vue.js
的使用情況總的來說,React和Angular一直保持著相對一致的發展步調。如果要我嘗試做個預測,那么React會持續升高,Angular有所下滑。Vue.js依然不是很明晰,不過由于其框架的簡潔性,發展也不錯。
下面我們各個框架的優缺點:
Angular是一個從2009年就開始推出JavaScriptMVVM框架,對于構建高度可交互的網頁應用非常方便。
優點
- 新特性:RXJS,快速編譯(3秒內),新的HttpClient;
- 詳細的文檔幾乎涵蓋了所有必須的信息,你甚至不需要向同事咨詢。不過,你需要更多的時間去學習;
- 數據雙向綁定,可以減少出錯的風險;
- MVVM(Model-View-ViewModel)使得開發者可以針對同一個App模塊同時開發;
- 依賴注入使得模塊化和模塊中組件引入更加方便;
缺點
- 與生俱來的復雜的語法;好在Angular5使用TypeScript2.4,已經簡單多了;
- 遷移問題:從低版本升級到新版本的時候,不兼容導致遷移成本高。
使用Angular5的公司:Upwork,Freelancer,Udemy,YouTube,Paypal,Nike,Google,Telegram,Weather,iStockphoto,AWS,Crunchbase。
ReactJS是一個Facebook在2013年開源的JavaScript庫,可以非常方便地構建大型網頁應用。
優點
- 易于學習:由于語法十分簡潔,和Angular相比,React要容易得多。工程師只需要重溫一下HTML的基本知識就足夠。根本不需要像Angular一樣,還要深度學習TypeScript。
- 高度的靈活性;
- 虛擬DOM將HTML,XHTML、或則XML的文檔格式化成樹形結構,這樣瀏覽器可以更容易理解;
- 結合ES6/7,React可以很容易寫出各種酷炫代碼;
- Downward數據綁定,也就是說父節點的數據不會受到孩子節點的影響;
- 100%的開源,每天都有來自全世界無數的開發者的更新和改進;
- 絕對的輕量級,因為數據處理既可以在用戶端,也可以在服務端;
- 版本遷移非常容易,Facebook提供了”codemods”來自動化這一過程。
缺點
- 缺乏官方文檔:ReactJS的快速開發使得文檔的缺乏,眾多開發者的維護也使其缺乏一個系統化的思路;
- React因為太靈活增加了決策成本而不好使;
- 需要很長的時間去掌握,因為ReactJS需要你對如何將UI和MVC框架整合有一個足夠深度的理解。
使用ReactJS的公司:Facebook,Instagram,Netflix,NewYorkTimes,Yahoo,KhanAcademy,Whatsapp,Codecademy,Dropbox,Airbnb,Asana,Atlassian,Intercom,Microsoft。
Vue.js是一個2013年誕生的前端框架,非常適合用于構架非常靈活的UI和復雜的單頁面應用。
優點
- 強化的HTML,也就是說Vue.js有著很多和Angular相似的特點。
- 詳細的文檔,Vue.js有著超級友好的文檔,開發者可以快速的學會,這將會節省很多時間;
- 可適用性:你可以很快地從其它框架轉移到Vue.js,因為它和Angular以及React都有一定的相似性;
- 非常棒的整合性:Vue.js可以同時用于單頁面應用和更加復雜的網頁應用。主要在于你可以用它編寫很小的可交互部件,然后可以很容易地整合到現有的項目中而不會影響到整個系統;
- 可擴展性:Vue.js可以用于快速開發大型復用模板;
- 體積?。篤ue.js只有20KB左右的大小,使得其速度和靈活性相對于其它框架都好不少。
缺點
- 資源匱乏:Vue.js依然在整個市場中只占有很小的比例,所以相應的資源、知識要少很多;
- 靈活性帶來的風險:有時候,將其整合到大型項目的時候會有一些問題,但是你不見得能夠找到解法;
- 來自中國:許多的元素和描述依然使用中文。這對于開發中會引入一些復雜性,好在越來越多的相關資料已經被翻譯成英文。
使用Vue.js的公司:小米,阿里巴巴,WizzAir,EuroNews,Grammarly,GitlabandLaracasts,Adobe,Behance,Codeship,Reuters。
我們看下最近幾年的前端招聘
一般的前端公司都需要精通這幾個框架的;
總結
如果向從事前端,走的更遠,這幾個框架是必須要精通的。