React、Vue和Angular
React
React起源于Facebook的內部項目,用來架設Instagram 的網站,于2013年5月開源,并于2017年9月27發布v16.0版本,遵循MIT許可,即完全開源。
- 特點:
- 聲明式設計:React采用聲明范式,可以輕松描述應用。
- 高效:React通過對虛擬DOM技術,最大限度地減少與DOM的交互。
- 靈活:React可以與已知的庫或框架很好地配合。
- 優點:
- 速度快:在UI渲染過程中,React通過在虛擬DOM中的微操作來實現對實際DOM的局部更新。
- 跨瀏覽器兼容:虛擬DOM幫助我們解決了跨瀏覽器問題,它為我們提供了標準化的API,甚至在IE8中都是沒問題的。
- 單向數據流:Flux是一個用于在JavaScript應用中創建單向數據層的架構,它隨著React視圖庫的開發而被Facebook概念化。
- 有龐大而活躍的社區。
- 相關的開發工具功能豐富。
- React Native使得Web應用的邏輯可以復用于移動客戶端
- 缺點:
- React使用一種新的語法JSX,需要額外學習成本。
- React實際上只操作了view層,需要配合react-route和redux構建大型應用。
- 使用React技術棧的公司:阿里巴巴、美團內部系統、去哪兒等。
- 優秀的組件庫:Ant Design(螞蟻金服)
Vue
Vue.js的作者為Evan You(尤雨溪),任職于Google Creative Lab。Vue.js由個人項目發展成為開源項目,現為最流行的前端框架之一,目前更新到Vue2.0版本。
- 特點
- 輕量級的框架。
- 支持雙向的數據綁定。
- 通過指令擴展了HTML。
- 優點:
- 簡單:官方文檔很清晰,簡單易學。
- 靈活:不斷繁榮的生態系統,可以在一個庫和一套完整框架之間自如伸縮。
- 高效:20kB min+gzip 運行大小,超快虛擬 DOM,最省心的優化 。
- 吸收了angular和react的優點。
- 缺點:
- vue是新的框架,相對來說沒angular成熟。
- 同樣有很多額外的模塊,如路由器和狀態管理工具。
- 默認不支持IE9以下瀏覽器。
- 使用Vue技術棧的公司:
餓了么、稀土掘金(內容分享網站)、美團等。 - 優秀的組件庫:
Element UI
Angular
AngularJs是Google開源的一款JavaScript MVVM框架,彌補了HTML在構建應用方面上的不足,通過指令擴展HTML詞匯,使開發者可以動態聲明HTML內容,目前已更新到angular4.0版本。
- 特點
- 良好的應用程序結構。
- 雙向數據綁定。
- 通過指令擴展HTML詞匯。
- 以HTML為中心。
- 優點:
- 模板功能強大豐富,自帶了極其豐富的angular指令。
- 是一個比較完善的前端框架,包含服務,模板,數據雙向綁定,模塊化,路由,過濾器,依賴注入等所有功能;
- 自定義指令,自定義指令后可以在項目中多次使用。
- angularjs是由谷歌開發,這也意味著他有一個堅實的基礎和社區支持。
- 缺點:
- 陡峭的學習曲線,深入后概念很多。
- 對于數據量龐大的應用會有性能問題。
- 比較笨重。
- 使用Angular技術棧的公司:
錘子科技等。 - 優秀的組件庫:
Angular Material
總結
Angular、React和Vue三者面對的都是web應用,其中Angular適應領域相對較窄一些,React可以擴展到服務端,移動端Native部分,而Vue比較輕量,可快速搭建業務場景比較輕的頁面。