前端框架Vue、angular、React的優(yōu)點(diǎn)和缺點(diǎn)

一、Vue.js:

其實(shí)Vue.js不是一個(gè)框架,因?yàn)樗痪劢挂晥D層,是一個(gè)構(gòu)建數(shù)據(jù)驅(qū)動(dòng)的Web界面的庫(kù)。

Vue.js通過簡(jiǎn)單的API(應(yīng)用程序編程接口)提供高效的數(shù)據(jù)綁定和靈活的組件系統(tǒng)。

Vue.js的特性如下:

1.輕量級(jí)的框架
2.雙向數(shù)據(jù)綁定
3.指令
4.插件化

優(yōu)點(diǎn):

  1. 簡(jiǎn)單:官方文檔很清晰,比 Angular 簡(jiǎn)單易學(xué)。
  2. 快速:異步批處理方式更新 DOM。
  3. 組合:用解耦的、可復(fù)用的組件組合你的應(yīng)用程序。
  4. 緊湊:~18kb min+gzip,且無依賴。
  5. 強(qiáng)大:表達(dá)式 & 無需聲明依賴的可推導(dǎo)屬性 (computed properties)。
  6. 對(duì)模塊友好:可以通過 NPM、Bower 或 Duo 安裝,不強(qiáng)迫你所有的代碼都遵循 Angular 的各種規(guī)定,使用場(chǎng)景更加靈活。

缺點(diǎn):

  1. 新生兒:Vue.js是一個(gè)新的項(xiàng)目,沒有angular那么成熟。
  2. 影響度不是很大:google了一下,有關(guān)于Vue.js多樣性或者說豐富性少于其他一些有名的庫(kù)。
  3. 不支持IE8:

二、angularJS:

angularJS是一款優(yōu)秀的前端JS框架,已經(jīng)被用于Google的多款產(chǎn)品當(dāng)中。

angularJS的特性如下:

1.良好的應(yīng)用程序結(jié)構(gòu)
2.雙向數(shù)據(jù)綁定
3.指令
4.HTML模板
5.可嵌入、注入和測(cè)試

優(yōu)點(diǎn):

  1. 模板功能強(qiáng)大豐富,自帶了極其豐富的angular指令。
  2. 是一個(gè)比較完善的前端框架,包含服務(wù),模板,數(shù)據(jù)雙向綁定,模塊化,路由,過濾器,依賴注入等所有功能;
  3. 自定義指令,自定義指令后可以在項(xiàng)目中多次使用。
  4. ng模塊化比較大膽的引入了Java的一些東西(依賴注入),能夠很容易的寫出可復(fù)用的代碼,對(duì)于敏捷開發(fā)的團(tuán)隊(duì)來說非常有幫助。
  5. angularjs是互聯(lián)網(wǎng)巨人谷歌開發(fā),這也意味著他有一個(gè)堅(jiān)實(shí)的基礎(chǔ)和社區(qū)支持。

缺點(diǎn):

  1. angular 入門很容易 但深入后概念很多, 學(xué)習(xí)中較難理解.
  2. 文檔例子非常少, 官方的文檔基本只寫了api, 一個(gè)例子都沒有, 很多時(shí)候具體怎么用都是google來的, 或直接問misko,angular的作者.
  3. 對(duì)IE6/7 兼容不算特別好, 就是可以用jQuery自己手寫代碼解決一些.
  4. 指令的應(yīng)用的最佳實(shí)踐教程少, angular其實(shí)很靈活, 如果不看一些作者的使用原則,很容易寫出 四不像的代碼, 例如js中還是像jQuery的思想有很多dom操作.
  5. DI 依賴注入 如果代碼壓縮需要顯示聲明.

三、React:

React主要用于構(gòu)建UI。你可以在React里傳遞多種類型的參數(shù),如聲明代碼,幫助你渲染出UI、也可以是靜態(tài)的HTML DOM元素、也可以傳遞動(dòng)態(tài)變量、甚至是可交互的應(yīng)用組件。

React特性如下:

1.聲明式設(shè)計(jì):React采用聲明范式,可以輕松描述應(yīng)用。
2.高效:React通過對(duì)DOM的模擬,最大限度地減少與DOM的交互。
3.靈活:React可以與已知的庫(kù)或框架很好地配合。

優(yōu)點(diǎn):

  1. 速度快:在UI渲染過程中,React通過在虛擬DOM中的微操作來實(shí)現(xiàn)對(duì)實(shí)際DOM的局部更新。
  2. 跨瀏覽器兼容:虛擬DOM幫助我們解決了跨瀏覽器問題,它為我們提供了標(biāo)準(zhǔn)化的API,甚至在IE8中都是沒問題的。
  3. 模塊化:為你程序編寫?yīng)毩⒌哪K化UI組件,這樣當(dāng)某個(gè)或某些組件出現(xiàn)問題是,可以方便地進(jìn)行隔離。
  4. 單向數(shù)據(jù)流:Flux是一個(gè)用于在JavaScript應(yīng)用中創(chuàng)建單向數(shù)據(jù)層的架構(gòu),它隨著React視圖庫(kù)的開發(fā)而被Facebook概念化。
  5. 同構(gòu)、純粹的javascript:因?yàn)樗阉饕娴呐老x程序依賴的是服務(wù)端響應(yīng)而不是JavaScript的執(zhí)行,預(yù)渲染你的應(yīng)用有助于搜索引擎優(yōu)化。
  6. *兼容性好:比如使用RequireJS來加載和打包,而Browserify和Webpack適用于構(gòu)建大型應(yīng)用。它們使得那些艱難的任務(wù)不再讓人望而生畏。

缺點(diǎn):

  1. React本身只是一個(gè)V而已,并不是一個(gè)完整的框架,所以如果是大型項(xiàng)目想要一套完整的框架的話,基本都需要加上ReactRouter和Flux才能寫大型應(yīng)用
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容