日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Vue和React有哪些區別

瀏覽:29日期:2022-11-22 17:40:40

一、監聽數據變化的實現原理不同

Vue通過 getter/setter以及一些函數的劫持,能精確知道數據變化 ,不需要特別的優化就能達到很好的性能 React默認是通過 比較引用 的方式進行的,如果不優化( pureComponent/shouldComponentUpdate )可能導致大量不必要的VDOM得重新渲染

為什么 React 不精確監聽數據變化呢 ?這是因為 Vue 和 React 設計理念上的區別, Vue 使用的是可變數據,而React更強調數據的不可變。 所以應該說沒有好壞之分,Vue更加簡單,而React構建大型應用的時候更加魯棒。

二、數據流的不同

Vue和React有哪些區別

大家都知道Vue中默認是支持雙向綁定的。在Vue1.0中我們可以實現兩種雙向綁定:

propsv-model 在 Vue2.x 中去掉了第一種, 也就是父子組件之間不能雙向綁定了(但是提供了一個語法糖自動幫你通過事件的方式修改),并且 Vue2.x 已經不鼓勵組件對自己的 props 進行任何修改了 。 然而 React從誕生之初就不支持雙向綁定,React一直提倡的是單向數據流,他稱之為 onChange/setState() 模式 。不過由于我們一般都會用 Vuex 以及 Redux 等單向數據流的狀態管理框架,因此很多時候我們感受不到這一點的區別了。

三、HOC和mixins

在Vue中我們組合不同功能的方式是通過mixin,而在React中我們通過HOC(高階組件)。React 最早也是使用 mixins 的,不過后來他們覺得這種方式對組件侵入太強會導致很多問題,就棄用了 mixinx 轉而使用 HoC,關于mixin究竟哪里不好,可以參考React官方的這篇文章 Mixins Considered Harmful。而 Vue 一直是使用 mixin 來實現的。

但是為什么Vue不采用HOC的方式來實現呢?

因為 高階組件本質就是高階函數,React的組件是一個純粹的函數,所以高階函數對React來說非常簡單 。但是Vue就不行了, Vue中組件是一個被包裝的函數,并不簡單的就是我們定義組件的時候傳入的對象或者函數 。比如我們定義的模板怎么被編譯的?比如聲明的props怎么接收到的?這些都是vue創建組件實例的時候隱式干的事。由于vue默默幫我們做了這么多事,所以我們自己如果直接把組件的聲明包裝一下,返回一個高階組件,那么這個被包裝的組件就無法正常工作了。

四、組件通信的區別

Vue和React有哪些區別

在Vue 中有三種方式可以實現組件通信:

父組件通過 props 向子組件傳遞數據或者回調,雖然可以傳遞回調,但是我們一般只傳數據,而通過 事件的機制來處理子組件向父組件的通信 子組件通過 事件 向父組件發送消息 通過 V2.2.0 中新增的 provide/inject 來實現父組件向子組件注入數據,可以跨越多個層級。

在React中,也有對應的三種方式:

父組件通過 props 可以向子組件傳遞數據或者回調 可以通過 context 進行跨層級的通信 ,這其實和 provide/inject 起到的作用差不多。

可以看到, React 本身并不支持自定義事件 ,Vue中子組件向父組件傳遞消息有兩種方式: 事件和回調函數,而且Vue更傾向于使用事件 。但是 在 React 中我們都是使用回調函數的 ,這可能是他們二者最大的區別。

五、渲染模版的不同

在表層上, 模板的語法不同

React是通過JSX渲染模版 而Vue是通過一種拓展的HTML語法進行渲染

但其實這只是表面現象,畢竟 React并不必須依賴JSX 。在深層上,模板的原理不同,這才是他們的本質區別:

React是在組件JS代碼中,通過 原生JS實現 模板中的常見語法,比如插值,條件,循環等,都是通過JS語法實現的 Vue是在和組件JS代碼分離的單獨的模板中, 通過指令來實現的 ,比如 條件語句就需要 v-if 來實現

react中 render函數是支持閉包特性的,所以我們import的組件在render中可以直接調用 。但是在Vue中, 由于模板中使用的數據都必須掛在 this 上進行一次中轉,所以我們import 一個組件完了之后,還需要在 components 中再聲明下,這樣顯然是很奇怪但又不得不這樣的做法。

六、Vuex和Redux的區別

從表面上來說, store 注入和使用方式有一些區別 。在 Vuex 中, $store 被直接注入到了組件實例中 ,因此可以比較靈活的使用:

使用dispatch和commit提交更新 通過mapState或者直接通過this.$store來讀取數據

在 Redux 中, 我們每一個組件都需要顯示的用 connect 把需要的 props 和 dispatch 連接起來。

另外 Vuex 更加靈活一些, 組件中既可以 dispatch action 也可以 commit updates ,而 Redux 中只能進行 dispatch,并不能直接調用 reducer 進行修改。

從實現原理上來說,最大的區別是兩點:

Redux 使用的是不可變數據,而Vuex的數據是可變的。 Redux每次都是用新的state替換舊的state,而Vuex是直接修改 Redux 在檢測數據變化的時候,是通過 diff 的方式比較差異的,而Vuex其實和Vue的原理一樣,是通過 getter/setter來比較的(如果看Vuex源碼會知道,其實他內部直接創建一個Vue實例用來跟蹤數據變化)

七、diff算法不同

兩者流程思維上是類似的,都是基于兩個假設(使得算法復雜度降為O(n)):

不同的組件產生不同的 DOM 結構。當type不相同時,對應DOM操作就是直接銷毀老的DOM,創建新的DOM。 同一層次的一組子節點,可以通過唯一的 key 區分。

但兩者源碼實現上有區別:

Vue基于snabbdom庫,它有較好的速度以及模塊機制。 Vue Diff使用雙向鏈表,邊對比,邊更新DOM 。 React主要使用 diff隊列保存需要更新哪些DOM,得到patch樹,再統一操作批量更新DOM。

Vue和React有哪些區別

八、事件機制不同

Vue

Vue原生事件使用 標準Web事件 Vue組件 自定義事件機制,是父子組件通信基礎 Vue合理利用了snabbdom庫的模塊插件

React

React原生事件被包裝,所有事件都冒泡到頂層document監聽,然后在這里合成事件下發 ?;谶@套,可以跨端使用事件機制,而不是和Web DOM強綁定。 React組件上無事件,父子組件通信使用props

以上就是Vue和React有哪些區別的詳細內容,更多關于Vue和React的資料請關注好吧啦網其它相關文章!

標簽: Vue
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日本中文字幕一区二区| 亚洲一区黄色| 91麻豆精品激情在线观看最新| 亚洲影院天堂中文av色| 日韩一区精品| 精品中国亚洲| 日韩美女一区二区三区在线观看| 三级精品视频| 首页亚洲欧美制服丝腿| 日韩激情精品| av资源中文在线| 影音先锋久久| 国产欧美日韩视频在线| 亚洲最新av| 久久精品免费看| 精品国产aⅴ| 九色精品91| 91精品一区| 国产成年精品| 欧美资源在线| 国产66精品| 首页国产欧美久久| 国产一区二区亚洲| 亚洲区第一页| 国产精品最新| 午夜国产精品视频| 国产人成精品一区二区三| 日韩电影免费网站| 日韩精品一页| 久久精品国产福利| 美女日韩在线中文字幕| 国产一区调教| 日本成人在线不卡视频| 九九精品调教| 国产精久久久| 天堂va在线高清一区| 久久久久久美女精品| 久久99蜜桃| 日本va欧美va欧美va精品| 欧美色图国产精品| 国产不卡精品在线| 久久国产精品成人免费观看的软件| 久久国产人妖系列| 少妇精品久久久一区二区| 人在线成免费视频| 精品视频高潮| 欧美伊人久久| 欧美亚洲三区| 亚洲91网站| 午夜精品福利影院| 综合色一区二区| 国产手机视频一区二区| 麻豆免费精品视频| 成人精品国产亚洲| 久久香蕉网站| 电影亚洲精品噜噜在线观看 | 国产va免费精品观看精品视频| 欧美日韩一区二区三区不卡视频| 久久久久国产精品一区二区| 日韩欧美精品综合| 婷婷亚洲综合| 热久久久久久久| 日韩精品久久久久久久软件91| 午夜天堂精品久久久久| 日本高清久久| 欧美xxxx性| 日韩精品麻豆| 美美哒免费高清在线观看视频一区二区| 亚洲人成毛片在线播放女女| 国产日韩一区二区三区在线| 久久精品一区二区国产| 日韩中文首页| 91久久视频| 99国产精品久久久久久久| 午夜在线一区二区| 欧美激情视频一区二区三区在线播放| 国产精品麻豆久久| 亚州av乱码久久精品蜜桃| 日韩精品一级中文字幕精品视频免费观看 | 国产精品免费99久久久| 日韩成人精品一区| 亚洲精品123区| 免费日韩成人| 久久国产精品久久久久久电车 | 99久久亚洲精品蜜臀| 日本综合视频| 日韩精品水蜜桃| 日韩av不卡在线观看| 精品免费av在线| 97精品97| 日本欧美国产| 日韩中文字幕不卡| 色乱码一区二区三区网站| 亚洲精品一区二区妖精| 国产日产精品_国产精品毛片| 日韩国产欧美一区二区| 蘑菇福利视频一区播放| 国产精品一区免费在线| 人人精品亚洲| 老司机精品视频在线播放| 婷婷成人基地| 国产suv精品一区二区四区视频 | 免费国产亚洲视频| 黄色aa久久| 国产日产精品_国产精品毛片 | 日韩成人免费| 午夜精品影视国产一区在线麻豆| 福利一区二区三区视频在线观看| 自拍日韩欧美| 国产aⅴ精品一区二区四区| 视频一区二区国产| av亚洲一区二区三区| 国产毛片久久久| 亚洲综合图色| 午夜精品亚洲| 久久久久久久久久久妇女| 日本黄色精品| 日本不良网站在线观看| caoporn视频在线| 国产乱人伦精品一区| 青草国产精品| 国产剧情一区二区在线观看| 国产精品videossex久久发布| 黄色成人在线网址| 亚洲四虎影院| 亚洲香蕉网站| 欧美日韩国产亚洲一区| 激情偷拍久久| 99国产精品视频免费观看一公开 | 日韩精品亚洲专区| 国产亚洲高清一区| 久久精品欧洲| 日韩国产一区二区| 国产精品毛片一区二区三区| 日韩专区欧美专区| 日韩高清二区| 久久精品999| 激情中国色综合| 欧美日韩四区| 欧美日韩午夜| 亚洲影视一区二区三区| 91精品韩国| 91精品电影| 欧美日韩伊人| 成人羞羞在线观看网站| 亚洲我射av| 国产精品不卡| 蜜桃av一区二区| 久久男人av| 蜜桃av一区二区| 四虎成人av| 亚洲国产不卡| 精品三区视频| 香蕉成人久久| 久久精品国产亚洲一区二区三区| 婷婷成人基地| 三上亚洲一区二区| 日韩精品亚洲专区| 国内精品福利| 福利一区二区| 免费观看久久久4p| 免费一级片91| 日韩视频网站在线观看| 亚洲精品免费观看| 激情婷婷久久| 一区二区三区四区日本视频| 一区三区视频| 99tv成人| 日韩不卡免费高清视频| 欧美a一区二区| 国产欧美日韩影院| 欧美日韩18| 国产精品免费看| 亚洲一区资源| 动漫av一区| 日韩av专区| 91亚洲自偷观看高清| 国产精品欧美三级在线观看| 亚洲欧美日本国产| 久久最新视频| 亚洲中午字幕| 久久人人99| 不卡一区2区| 免费观看久久av| 午夜国产一区二区| 99国产精品久久久久久久| 偷拍精品精品一区二区三区| 精品免费视频| 欧美视频二区| 五月亚洲婷婷 | 日本欧美大码aⅴ在线播放| 在线免费观看亚洲| 在线精品观看| 久久国产三级| 精品一区二区三区中文字幕视频| 老司机精品视频在线播放| 国产成人精品免费视| 久久久精品久久久久久96| 99精品视频在线| 亚洲国产专区|