相似之處
- 使用 Virtual DOM
- 提供了響應式 (Reactive) 和組件化 (Composable) 的視圖組件
- 將注意力集中保持在核心庫,而將其他功能如路由和全局狀態(tài)管理交給相關的庫
不同之處
在 React 應用中,當某個組件的狀態(tài)發(fā)生變化時,它會以該組件為根,重新渲染整個組件子樹(除非使用PureComponent/shouldComponentUpdate),在 Vue 應用中,組件的依賴是在渲染過程中自動追蹤的,所以系統(tǒng)能精確知曉哪個組件確實需要被重渲染
在 React 中,一切都是 JavaScript。不僅僅是 HTML 可以用 JSX 來表達,現(xiàn)在的潮流也越來越多地將 CSS 也納入到 JavaScript 中來處理
Vue 的路由庫和狀態(tài)管理庫都是由官方維護支持且與核心庫同步更新的。React 則是選擇把這些問題交給社區(qū)維護,因此創(chuàng)建了一個更分散的生態(tài)系統(tǒng),所以有更豐富的生態(tài)系統(tǒng)
Vue 提供了CLI 腳手架,能讓你通過交互式的腳手架引導非常容易地構建項目。你甚至可以使用它快速開發(fā)組件的原型。React 在這方面也提供了create-react-app,但是現(xiàn)在還存在一些局限性
React Native 能使你用相同的組件模型編寫有本地渲染能力的 APP,Vue 和Weex會進行官方合作,Weex 是阿里巴巴發(fā)起的跨平臺用戶界面開發(fā)框架,同時也正在 Apache 基金會進行項目孵化,另一個選擇是NativeScript-Vue,一個用 Vue.js 構建完全原生應用的NativeScript插件