兩個元件的原理我準備用比較的方式來了解下,畢竟透過比較才知道各有各的優勢吧。
Vue 透過 getter/setter 以及一些函式的劫持,能精確知道資料變化,不需要特別的最佳化就能達到很好的效能。
React 預設是透過比較引用的方式進行的,如果不最佳化(PureComponent/shouldComponentUpdate)可能導致大量不必要的VDOM的重新渲染。
2. 資料流的不同
大家都知道Vue中預設是支援雙向繫結的。在Vue1.0中我們可以實現兩種雙向繫結:
父子元件之間,props 可以雙向繫結
元件與DOM之間可以透過 v-model 雙向繫結。
在 Vue2.x 中去掉了第一種,也就是父子元件之間不能雙向綁定了(但是提供了一個語法糖自動幫你透過事件的方式修改),並且 Vue2.x 已經不鼓勵元件對自己的 props 進行任何修改了。
所以現在我們只有 元件 <--> DOM 之間的雙向繫結這一種。
然而 React 從誕生之初就不支援雙向繫結,React一直提倡的是單向資料流,他稱之為 onChange/setState()模式。
3. HoC 和 mixins
在 Vue 中我們組合不同功能的方式是透過 mixin,而在React中我們透過 HoC (高階元件)。
4. 元件通訊的區別
5. 模板渲染方式的不同
React 是透過JSX渲染模板
Vue是透過一種拓展的HTML語法進行渲染
兩個元件的原理我準備用比較的方式來了解下,畢竟透過比較才知道各有各的優勢吧。
共同點都使用虛擬dom。提供了響應式和元件化的檢視元件。注意力集中保持在核心庫,而將其他功能如路由和全域性狀態管理交給相關的庫。區別監聽資料變化的實現原理不同Vue 透過 getter/setter 以及一些函式的劫持,能精確知道資料變化,不需要特別的最佳化就能達到很好的效能。
React 預設是透過比較引用的方式進行的,如果不最佳化(PureComponent/shouldComponentUpdate)可能導致大量不必要的VDOM的重新渲染。
2. 資料流的不同
大家都知道Vue中預設是支援雙向繫結的。在Vue1.0中我們可以實現兩種雙向繫結:
父子元件之間,props 可以雙向繫結
元件與DOM之間可以透過 v-model 雙向繫結。
在 Vue2.x 中去掉了第一種,也就是父子元件之間不能雙向綁定了(但是提供了一個語法糖自動幫你透過事件的方式修改),並且 Vue2.x 已經不鼓勵元件對自己的 props 進行任何修改了。
所以現在我們只有 元件 <--> DOM 之間的雙向繫結這一種。
然而 React 從誕生之初就不支援雙向繫結,React一直提倡的是單向資料流,他稱之為 onChange/setState()模式。
3. HoC 和 mixins
在 Vue 中我們組合不同功能的方式是透過 mixin,而在React中我們透過 HoC (高階元件)。
4. 元件通訊的區別
5. 模板渲染方式的不同
React 是透過JSX渲染模板
Vue是透過一種拓展的HTML語法進行渲染