當前,三大主流前端框架分別是React、Vue、Angular這三個框架。
1.React 起源於 Facebook 的內部項目,用來架設 Instagram 的網站, 並於 2013年 5 月開源。React 擁有較高的性能,代碼邏輯非常簡單,越來越多的人已開始關注和使用它。
特性:
(1)聲明式設計:React採用聲明範式,可以輕鬆描述應用。
(2)高效:React通過對DOM的模擬,最大限度地減少與DOM的交互。
(3)靈活:React可以與已知的庫或框架很好地配合。
優點:
(1) 速度快:在UI渲染過程中,React通過在虛擬DOM中的微操作來實現對實際DOM的局部更新。
(2)跨瀏覽器兼容:虛擬DOM幫助我們解決了跨瀏覽器問題,它爲我們提供了標準化的API,甚至在IE8中都是沒問題的。
(3)模塊化:爲你程序編寫獨立的模塊化UI組件,這樣當某個或某些組件出現問題是,可以方便地進行隔離。
(4)單向數據流:Flux是一個用於在JavaScript應用中創建單向數據層的架構,它隨着React視圖庫的開發而被Facebook概念化。
(5)同構、純粹的javascript:因爲搜索引擎的爬蟲程序依賴的是服務端響應而不是JavaScript的執行,預渲染你的應用有助於搜索引擎優化。
(6)兼容性好:比如使用RequireJS來加載和打包,而Browserify和Webpack適用於構建大型應用。它們使得那些艱難的任務不再讓人望而生畏。
缺點:
React本身只是一個V而已,並不是一個完整的框架,所以如果是大型項目想要一套完整的框架的話,基本都需要加上ReactRouter和Flux才能寫大型應用。
2.Vue是尤雨溪編寫的一個構建數據驅動的Web界面的庫,準確來說不是一個框架,它聚焦在V(view)視圖層。
特性:
(1)輕量級的框架
(2)雙向數據綁定
(3)指令
(4)插件化
優點:
(1)簡單:官方文檔很清晰,比 Angular 簡單易學。
(2)快速:異步批處理方式更新 DOM。
(3)組合:用解耦的、可複用的組件組合你的應用程序。
(4)緊湊:~18kb min+gzip,且無依賴。
(5)強大:表達式 無需聲明依賴的可推導屬性 (computed properties)。
(6)對模塊友好:可以通過 NPM、Bower 或 Duo 安裝,不強迫你所有的代碼都遵循 Angular 的各種規定,使用場景更加靈活。
缺點:
(1)新生兒:Vue.js是一個新的項目,沒有angular那麼成熟。
(2)影響度不是很大:google了一下,有關於Vue.js多樣性或者說豐富性少於其他一些有名的庫。
(3) 不支持IE8
3.Angular是一款優秀的前端JS框架,已經被用於Google的多款產品當中。
特性:
(1)良好的應用程序結構
(2)雙向數據綁定
(3)指令
(4)HTML模板
(5)可嵌入、注入和測試
優點:
(1)模板功能強大豐富,自帶了極其豐富的angular指令。
(2)是一個比較完善的前端框架,包含服務,模板,數據雙向綁定,模塊化,路由,過濾器,依賴注入等所有功能;
(3)自定義指令,自定義指令後可以在項目中多次使用。
(4)ng模塊化比較大膽的引入了Java的一些東西(依賴注入),能夠很容易的寫出可複用的代碼,對於敏捷開發的團隊來說非常有幫助。
(5)angularjs是互聯網巨人谷歌開發,這也意味着他有一個堅實的基礎和社區支持。
缺點:
(1)angular 入門很容易 但深入後概念很多, 學習中較難理解.
(2)文檔例子非常少, 官方的文檔基本只寫了api, 一個例子都沒有, 很多時候具體怎麼用都是google來的, 或直接問misko,angular的作者.
(3)對IE6/7 兼容不算特別好, 就是可以用jQuery自己手寫代碼解決一些.
(4)指令的應用的最佳實踐教程少, angular其實很靈活, 如果不看一些作者的使用原則,很容易寫出 四不像的代碼, 例如js中還是像jQuery的思想有很多dom操作.
(5)DI 依賴注入 如果代碼壓縮需要顯示聲明.