優點:
React速度很快
與其它框架相比,React採取了一種特立獨行的操作DOM的方式。
它並不直接對DOM進行操作。
它引入了一個叫做虛擬DOM的概念,安插在JavaScript邏輯和實際的DOM之間。
這一概念提高了Web性能。在UI渲染過程中,React通過在虛擬DOM中的微操作來實對現實際DOM的局部更新。
跨瀏覽器兼容
虛擬DOM幫助我們解決了跨瀏覽器問題,它爲我們提供了標準化的API,甚至在IE8中都是沒問題的。
模塊化
爲你程序編寫獨立的模塊化UI組件,這樣當某個或某些組件出現問題是,可以方便地進行隔離。
每個組件都可以進行獨立的開發和測試,並且它們可以引入其它組件。這等同於提高了代碼的可維護性。
單向數據流讓事情一目瞭然
Flux是一個用於在JavaScript應用中創建單向數據層的架構,它隨着React視圖庫的開發而被Facebook概念化。它只是一個概念,而非特定工具的實現。它可以被其它框架吸納。例如,Alex Rattray有一個很好的Flux實例,在React中使用了Backbone的集合和模型。
純粹的JavaScript
現代Web應用程序與傳統的Web應用有着不同的工作方式。
例如,視圖層的更新需要通過用戶交互而不需要請求服務器。因此視圖和控制器非常依賴彼此。
許多框架使用Handlebars或Mustache等模板引擎來處理視圖層。但React相信視圖和控制器應該相互依存在一起而不是使用第三方模板引擎,而且,最重要的是,它是純粹的JavaScript程序。
同構的JavaScript
單頁面JS應用程序的最大缺陷在於對搜索引擎的索引有很大限制。React對此有了解決方案。
React可以在服務器上預渲染應用再發送到客戶端。它可以從預渲染的靜態內容中恢復一樣的記錄到動態應用程序中。
因爲搜索引擎的爬蟲程序依賴的是服務端響應而不是JavaScript的執行,預渲染你的應用有助於搜索引擎優化。
React與其它框架/庫兼容性好
比如使用RequireJS來加載和打包,而Browserify和Webpack適用於構建大型應用。它們使得那些艱難的任務不再讓人望而生畏。
缺點?
React本身只是一個V而已,所以如果是大型項目想要一套完整的框架的話,也許還需要引入Flux和routing相關的東西。
大多數坑沒踩出來