精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

關(guān)于Vue和React的一些區(qū)別

開(kāi)發(fā) 前端
這篇文章記錄我在使用Vue和React的時(shí)候,對(duì)他們的不同之處的一些思考,不僅局限于他們本身,也會(huì)包括比如 Vuex/Redux 等經(jīng)常搭配使用的工具。因?yàn)樯婕暗降膬?nèi)容很多,可能下面的每一個(gè)點(diǎn)都能寫(xiě)成一篇文章,這次先簡(jiǎn)單做一個(gè)概要,等我有空做一個(gè)詳細(xì)的專(zhuān)題出來(lái)。

[[238243]]

這篇文章記錄我在使用Vue和React的時(shí)候,對(duì)他們的不同之處的一些思考,不僅局限于他們本身,也會(huì)包括比如 Vuex/Redux 等經(jīng)常搭配使用的工具。因?yàn)樯婕暗降膬?nèi)容很多,可能下面的每一個(gè)點(diǎn)都能寫(xiě)成一篇文章,這次先簡(jiǎn)單做一個(gè)概要,等我有空做一個(gè)詳細(xì)的專(zhuān)題出來(lái)。

監(jiān)聽(tīng)數(shù)據(jù)變化的實(shí)現(xiàn)原理不同

  • Vue 通過(guò) getter/setter 以及一些函數(shù)的劫持,能精確知道數(shù)據(jù)變化,不需要特別的優(yōu)化就能達(dá)到很好的性能
  • React 默認(rèn)是通過(guò)比較引用的方式進(jìn)行的,如果不優(yōu)化(PureComponent/shouldComponentUpdate)可能導(dǎo)致大量不必要的VDOM的重新渲染

為什么 React 不精確監(jiān)聽(tīng)數(shù)據(jù)變化呢?這是因?yàn)?Vue 和 React 設(shè)計(jì)理念上的區(qū)別,Vue 使用的是可變數(shù)據(jù),而React更強(qiáng)調(diào)數(shù)據(jù)的不可變。所以應(yīng)該說(shuō)沒(méi)有好壞之分,Vue更加簡(jiǎn)單,而React構(gòu)建大型應(yīng)用的時(shí)候更加魯棒。

因?yàn)橐话愣紩?huì)用一個(gè)數(shù)據(jù)層的框架比如 Vuex 和 Redux,所以這部分不作過(guò)多解釋?zhuān)?**的 vuex 和 redux的區(qū)別 中也會(huì)講到。

數(shù)據(jù)流的不同

關(guān)于 Vue 和 React 的一些區(qū)別

大家都知道Vue中默認(rèn)是支持雙向綁定的。在Vue1.0中我們可以實(shí)現(xiàn)兩種雙向綁定:

  • 父子組件之間,props 可以雙向綁定
  • 組件與DOM之間可以通過(guò) v-model 雙向綁定

在 Vue2.x 中去掉了***種,也就是父子組件之間不能雙向綁定了(但是提供了一個(gè)語(yǔ)法糖自動(dòng)幫你通過(guò)事件的方式修改),并且 Vue2.x 已經(jīng)不鼓勵(lì)組件對(duì)自己的 props 進(jìn)行任何修改了。

所以現(xiàn)在我們只有 組件 <–> DOM 之間的雙向綁定這一種。

然而 React 從誕生之初就不支持雙向綁定,React一直提倡的是單向數(shù)據(jù)流,他稱(chēng)之為 onChange/setState()模式。

不過(guò)由于我們一般都會(huì)用 Vuex 以及 Redux 等單向數(shù)據(jù)流的狀態(tài)管理框架,因此很多時(shí)候我們感受不到這一點(diǎn)的區(qū)別了。

HoC 和 mixins

在 Vue 中我們組合不同功能的方式是通過(guò) mixin,而在React中我們通過(guò) HoC (高階組件)。

React 最早也是使用 mixins 的,不過(guò)后來(lái)他們覺(jué)得這種方式對(duì)組件侵入太強(qiáng)會(huì)導(dǎo)致很多問(wèn)題,就棄用了 mixinx 轉(zhuǎn)而使用 HoC,關(guān)于mixin究竟哪里不好,可以參考React官方的這篇文章 Mixins Considered Harmful

而 Vue 一直是使用 mixin 來(lái)實(shí)現(xiàn)的。

為什么 Vue 不采用 HoC 的方式來(lái)實(shí)現(xiàn)呢?

高階組件本質(zhì)就是高階函數(shù),React 的組件是一個(gè)純粹的函數(shù),所以高階函數(shù)對(duì)React來(lái)說(shuō)非常簡(jiǎn)單。

但是Vue就不行了,Vue中組件是一個(gè)被包裝的函數(shù),并不簡(jiǎn)單的就是我們定義組件的時(shí)候傳入的對(duì)象或者函數(shù)。比如我們定義的模板怎么被編譯的?比如聲明的props怎么接收到的?這些都是vue創(chuàng)建組件實(shí)例的時(shí)候隱式干的事。由于vue默默幫我們做了這么多事,所以我們自己如果直接把組件的聲明包裝一下,返回一個(gè)高階組件,那么這個(gè)被包裝的組件就無(wú)法正常工作了。

組件通信的區(qū)別

關(guān)于 Vue 和 React 的一些區(qū)別

其實(shí)這部分兩個(gè)比較相似。

在Vue 中有三種方式可以實(shí)現(xiàn)組件通信:

  • 父組件通過(guò) props 向子組件傳遞數(shù)據(jù)或者回調(diào),雖然可以傳遞回調(diào),但是我們一般只傳數(shù)據(jù),而通過(guò) 事件的機(jī)制來(lái)處理子組件向父組件的通信
  • 子組件通過(guò) 事件 向父組件發(fā)送消息
  • 通過(guò) V2.2.0 中新增的 provide/inject 來(lái)實(shí)現(xiàn)父組件向子組件注入數(shù)據(jù),可以跨越多個(gè)層級(jí)。

另外有一些比如訪(fǎng)問(wèn) $parent/$children等比較dirty的方式這里就不講了。

在 React 中,也有對(duì)應(yīng)的三種方式:

  • 父組件通過(guò) props 可以向子組件傳遞數(shù)據(jù)或者回調(diào)
  • 可以通過(guò) context 進(jìn)行跨層級(jí)的通信,這其實(shí)和 provide/inject 起到的作用差不多。

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

模板渲染方式的不同

在表層上, 模板的語(yǔ)法不同

  • React 是通過(guò)JSX渲染模板
  • 而Vue是通過(guò)一種拓展的HTML語(yǔ)法進(jìn)行渲染

但其實(shí)這只是表面現(xiàn)象,畢竟React并不必須依賴(lài)JSX。

在深層上,模板的原理不同,這才是他們的本質(zhì)區(qū)別:

  • React是在組件JS代碼中,通過(guò)原生JS實(shí)現(xiàn)模板中的常見(jiàn)語(yǔ)法,比如插值,條件,循環(huán)等,都是通過(guò)JS語(yǔ)法實(shí)現(xiàn)的
  • Vue是在和組件JS代碼分離的單獨(dú)的模板中,通過(guò)指令來(lái)實(shí)現(xiàn)的,比如條件語(yǔ)句就需要 v-if 來(lái)實(shí)現(xiàn)

對(duì)這一點(diǎn),我個(gè)人比較喜歡React的做法,因?yàn)樗蛹兇飧釉鳹ue的做法顯得有些獨(dú)特,會(huì)把HTML弄得很亂。舉個(gè)例子,說(shuō)明React的好處:

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

Vuex 和 Redux 的區(qū)別

從表面上來(lái)說(shuō),store 注入和使用方式有一些區(qū)別。

在 Vuex 中,$store 被直接注入到了組件實(shí)例中,因此可以比較靈活的使用:

  • 使用 dispatch 和 commit 提交更新
  • 通過(guò) mapState 或者直接通過(guò) this.$store 來(lái)讀取數(shù)據(jù)

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

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

從實(shí)現(xiàn)原理上來(lái)說(shuō),***的區(qū)別是兩點(diǎn):

  • Redux 使用的是不可變數(shù)據(jù),而Vuex的數(shù)據(jù)是可變的。Redux每次都是用新的state替換舊的state,而Vuex是直接修改
  • Redux 在檢測(cè)數(shù)據(jù)變化的時(shí)候,是通過(guò) diff 的方式比較差異的,而Vuex其實(shí)和Vue的原理一樣,是通過(guò) getter/setter來(lái)比較的(如果看Vuex源碼會(huì)知道,其實(shí)他內(nèi)部直接創(chuàng)建一個(gè)Vue實(shí)例用來(lái)跟蹤數(shù)據(jù)變化)

而這兩點(diǎn)的區(qū)別,其實(shí)也是因?yàn)?React 和 Vue的設(shè)計(jì)理念上的區(qū)別。React更偏向于構(gòu)建穩(wěn)定大型的應(yīng)用,非常的科班化。相比之下,Vue更偏向于簡(jiǎn)單迅速的解決問(wèn)題,更靈活,不那么嚴(yán)格遵循條條框框。因此也會(huì)給人一種大型項(xiàng)目用React,小型項(xiàng)目用 Vue 的感覺(jué)。

責(zé)任編輯:未麗燕 來(lái)源: 程序師
相關(guān)推薦

2011-07-13 09:13:56

Android設(shè)計(jì)

2011-07-13 10:12:56

SQL語(yǔ)句優(yōu)化操作符優(yōu)化

2021-06-08 06:13:16

React開(kāi)發(fā)開(kāi)發(fā)技術(shù)

2021-10-21 06:52:17

Vue3組件 API

2013-04-07 10:40:55

前端框架前端

2009-06-18 09:51:25

Java繼承

2013-07-18 16:16:51

2013-08-21 13:47:29

PhoneUDIDUUID

2022-08-02 09:55:04

React前端

2021-05-14 09:49:47

React HookReact應(yīng)用

2012-09-25 10:03:56

JavaJava封面Java開(kāi)發(fā)

2012-04-19 10:06:55

微軟Windows 8 E

2015-12-04 10:04:53

2022-04-14 10:22:44

故事卡業(yè)務(wù)

2020-09-28 06:45:42

故障復(fù)盤(pán)修復(fù)

2017-12-21 07:54:07

2011-03-11 09:27:11

Java性能監(jiān)控

2009-06-04 16:28:43

EJB常見(jiàn)問(wèn)題

2020-04-10 08:50:37

Shell腳本循環(huán)

2016-10-18 22:10:02

HTTP推送HTML
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产美女福利在线| 好吊色在线视频| 国产精品美女在线观看直播| 欧美日韩国产限制| 亚洲欧美丝袜| 秋霞av鲁丝片一区二区| 久久综合图片| 欧美巨猛xxxx猛交黑人97人| 黄色国产在线观看| 精品一区二区三区亚洲| 欧美性xxxxxx| 国产女主播av| 成人免费黄色网页| 国产成人高清视频| 国产精品亚洲精品| 国产精品一区二区6| 久久神马影院| 日韩经典中文字幕| 午夜影院免费版| www.日韩| 五月天欧美精品| 国产高清精品软男同| 你懂的在线免费观看| 国产乱国产乱300精品| 日韩美女在线观看| 国产极品美女高潮无套嗷嗷叫酒店| 成人精品久久| 精品视频久久久| 亚洲精品久久久久久| 国产精品一区二区免费福利视频| 亚洲成a人片在线不卡一二三区 | 久久久久久久片| 乱插在线www| 1024亚洲合集| 性欧美videosex高清少妇| 五月色婷婷综合| 久久人人爽人人爽人人片av免费| 欧美不卡高清一区二区三区| 香蕉久久一区二区不卡无毒影院| 在线天堂一区av电影| 国产在线高清| 国产视频亚洲色图| 欧美第一黄网| 亚洲人妻一区二区三区| 成人免费毛片片v| 亚洲自拍偷拍视频| 国产又粗又猛又爽| 精品一区二区三区在线观看 | 影音先锋成人资源网站| 在线观看a视频| 国产精品伦一区二区三级视频| 日韩中文一区| 91最新在线| 国产精品九色蝌蚪自拍| 亚洲精品一区国产精品| 91精品专区| 一区免费观看视频| 日本一道在线观看| 欧美日韩经典丝袜| 亚洲国产wwwccc36天堂| 国产精品私人自拍| 国产成人精品久久久| 狠狠人妻久久久久久综合| 国产精品人人爽人人做我的可爱| 97涩涩爰在线观看亚洲| 一区二区三区视频免费看| 99精品免费| 日本精品一区二区三区在线| 男操女视频网站| 免费成人在线网站| 91精品中国老女人| 亚洲精品国产一区二| jizz一区二区| 人禽交欧美网站免费| 97超碰人人在线| 亚洲欧美一区二区三区孕妇| 免费看欧美一级片| 在线亚洲人成| 欧美精品久久一区| 极品白嫩的小少妇| 神马久久av| 中文字幕日韩电影| 朝桐光av在线| 午夜在线精品| 91精品国产综合久久香蕉最新版| 亚洲av无码国产精品永久一区 | 欧美亚洲系列| 欧美日韩中文字幕在线视频| 午夜激情在线观看视频| 福利一区三区| 日韩电影在线观看中文字幕| 日韩精品电影一区二区三区| 欧美日韩国产亚洲一区| 欧美最猛性xxxxx免费| 在线观看免费高清视频| 成人免费观看视频| 四虎影院一区二区三区| av毛片在线| 色婷婷综合久久久中文一区二区| 中文字幕成人在线视频| 国产二区视频在线播放| 中文字幕色婷婷在线视频| 欧美日韩激情一区| 日本少妇xxxx| 99久久精品网| 欧美一区二三区| 国产精品久久欧美久久一区| 久久影视一区二区| 国产精品自拍合集| 久久久免费人体| 亚洲精品国产综合久久| 国产67194| 久久午夜av| 成人三级在线| av在线免费网址| 在线这里只有精品| 成人免费无码大片a毛片| 66国产精品| 国产欧美va欧美va香蕉在| 天天操天天爱天天干| 亚洲免费av网站| jizzzz日本| 久久91麻豆精品一区| 欧美精品电影在线| 国产成人精品a视频| 国产精品三级av在线播放| 超碰网在线观看| 久久狠狠久久| 久久久欧美一区二区| 国产美女永久免费| 亚洲欧洲日本在线| 日韩欧美国产片| 欧美精品尤物在线观看 | 亚洲精品中字| 不卡一二三区| 日韩国产中文字幕| 日本黄色片视频| 丁香婷婷综合网| 高清无码一区二区在线观看吞精| 欧美电影在线观看网站| 中文在线不卡视频| 午夜一级黄色片| 久久精子c满五个校花| 各处沟厕大尺度偷拍女厕嘘嘘| 青青草原在线亚洲| 97视频在线观看免费| 亚洲成a人片77777精品| 一区二区三区欧美日| 成人综合久久网| 91精品综合| 成人av中文| 好看的中文字幕在线播放| 欧美成人三级在线| 黄色一级视频免费观看| 成人爽a毛片一区二区免费| 国产无限制自拍| 免费成人三级| 国产va免费精品高清在线观看| 日本在线一二三| 色乱码一区二区三区88| 少妇精品无码一区二区免费视频 | 久久精品一二三四| 亚洲一级淫片| 高清日韩一区| av最新在线| 亚洲天堂av在线免费观看| 中文字幕av网站| 亚洲视频图片小说| 五月天丁香社区| 老牛影视一区二区三区| 性欧美大战久久久久久久免费观看| 性爽视频在线| 中文字幕在线精品| 精品国产av鲁一鲁一区 | 日韩a∨精品日韩在线观看| 欧洲亚洲视频| 国产免费观看久久黄| 在线播放麻豆| 精品国产乱码久久久久久免费| 日产亚洲一区二区三区| 国产亚洲精品精华液| 午夜免费福利网站| 国产一区二区三区的电影| 欧洲精品久久| 日韩成人久久| 日本国产欧美一区二区三区| 日本不卡三区| 欧美一级视频精品观看| 91美女免费看| 中文字幕中文乱码欧美一区二区| 青娱乐国产精品视频| 美女尤物久久精品| 久久天天东北熟女毛茸茸| 日韩大胆成人| 51成人做爰www免费看网站| 91久久国产综合久久91猫猫| 久久精品成人欧美大片古装| 五月天婷婷在线播放| 欧美日韩国产高清一区二区三区| 久久综合色综合| 国产精品蜜臀av| 精品熟女一区二区三区| 久久精品国产亚洲aⅴ| 国产淫片免费看| 91精品国产视频| 日韩欧美第二区在线观看| 超碰精品在线| 91久久久久久久久久久| 免费日韩电影| 国内伊人久久久久久网站视频 | 久久免费成人精品视频| 色视频在线免费观看| 日韩成人av一区| 精品久久国产视频| 欧美日韩精品专区| 三级视频在线观看| 亚洲国产日韩a在线播放性色| 99久久精品久久亚洲精品| 91在线免费视频观看| av地址在线观看| 久久激情五月婷婷| 欧美综合在线观看视频| 亚洲激情亚洲| 免费看污污视频| 国产精品久久久久久| 日韩欧美三级电影| 午夜欧洲一区| 国外成人免费视频| 北条麻妃在线一区二区免费播放| 成人性生交大片免费看视频直播 | 成人av在线播放网站| 污污的网站免费| 日本午夜精品一区二区三区电影| 91九色在线观看视频| 亚洲一级电影| 加勒比成人在线| 韩国自拍一区| 免费看日本黄色| 永久91嫩草亚洲精品人人| 欧美性视频在线播放| 日本大胆欧美| 天堂va久久久噜噜噜久久va| 久久综合欧美| 日本在线一区| 成人高清av| 亚洲成人一区二区三区| re久久精品视频| 日韩亚洲欧美精品| 91免费精品| 91免费视频黄| 国产精品a级| 丁香六月激情婷婷| 国产精品日本| 黄色一级二级三级| 免费人成网站在线观看欧美高清| 天天操,天天操| 国产制服丝袜一区| 国产吃瓜黑料一区二区| 成人精品视频一区二区三区| 少妇被狂c下部羞羞漫画| 波多野结衣中文字幕一区二区三区 | 天堂社区 天堂综合网 天堂资源最新版| 欧美日韩一区二区综合| 中文网丁香综合网| 欧美涩涩视频| 黄色片视频在线免费观看| 久久亚洲视频| 九九九九九九九九| 成人三级伦理片| 成人性生活免费看| 国产网站一区二区| 日韩三级在线观看视频| 亚洲一级在线观看| 国产精品久久久久久久久夜色| 欧美性生活大片视频| av手机免费看| 亚洲美女视频网| 日本中文在线观看| 久久久久久久一区二区| 免费电影日韩网站| 91人人爽人人爽人人精88v| 亚洲视频一起| 日韩av电影免费播放| 91精品蜜臀一区二区三区在线| 国产精品www在线观看| 日韩精品久久理论片| 人妻换人妻仑乱| 91麻豆视频网站| 午夜精品一区二区三区视频| 五月天亚洲婷婷| 国产精品久久久久精| 日韩av在线免费观看| 免费黄色在线网站| 91精品国产91久久久| 久久爱.com| 好吊色欧美一区二区三区四区 | 一女二男一黄一片| 日韩国产精品视频| 美女黄视频在线观看| 91精品国产777在线观看| 24小时成人在线视频| 精品一区二区三区视频日产| 999国产精品视频| 亚洲熟妇av一区二区三区| 狠狠久久亚洲欧美| 日本高清www| 亚洲一区在线播放| 97超碰人人草| 亚洲人成啪啪网站| f2c人成在线观看免费视频| 91久久综合亚洲鲁鲁五月天| 最新国产一区| 男人添女人荫蒂免费视频| 久久机这里只有精品| 久久精品国产亚洲av麻豆| 亚洲综合在线视频| 国产熟女一区二区丰满| 在线看福利67194| 天堂av中文在线观看| 不卡日韩av| 中文字幕一区二区三区在线视频| 成年人在线观看视频免费| www.激情成人| 久久久全国免费视频| 制服丝袜中文字幕亚洲| aiai在线| 国产精品国产三级国产aⅴ9色| 日韩高清三区| 18禁免费观看网站| 成人黄色综合网站| 久久机热这里只有精品| 日韩一区二区在线播放| 久操视频在线观看| 国产视频福利一区| 成人影视亚洲图片在线| 青青草av网站| 国产视频在线观看一区二区三区 | 日韩在线一区二区三区| 久久久亚洲av波多野结衣| 黄网站色欧美视频| 外国精品视频在线观看 | 视频一区国产| 国内自拍中文字幕| 国产高清成人在线| 黄色一级免费视频| 亚洲国产精品嫩草影院久久| 懂色av一区| 国语精品免费视频| 亚洲伊人网站| 色欲狠狠躁天天躁无码中文字幕| 在线免费不卡电影| eeuss影院在线观看| 国产精品久久久久一区二区| 91视频综合| 成人高清在线观看视频| 亚洲香肠在线观看| 全色精品综合影院| 国产精品久久久久久超碰| 欧美在线色图| 永久看看免费大片| 欧美日韩国产激情| аⅴ资源新版在线天堂| 91久久精品国产91性色| 亚洲无线视频| 中文字幕丰满孑伦无码专区| 色欧美片视频在线观看| 日本视频在线播放| 成人精品一二区| 亚洲免费激情| 国产视频三区四区| 日韩一级完整毛片| 日韩伦理在线一区| 一区二区冒白浆视频| 国产精品一二二区| 日韩 欧美 综合| 中文字幕亚洲欧美日韩2019| 欧美久久亚洲| 国产亚洲欧美在线视频| 国产精品麻豆一区二区| 成人无码一区二区三区| 日本在线观看天堂男亚洲| 国产高清一区| 中文字幕在线观看的网站| 欧美无人高清视频在线观看| 在线xxxx| 婷婷久久伊人| 国产成人免费av在线| 精品成人无码久久久久久| 久久精品影视伊人网| 四虎影视精品| 亚洲欧美天堂在线| 日韩欧美视频一区二区三区| 国产一二区在线观看| 欧美成ee人免费视频| 国产裸体歌舞团一区二区| 久久久久久无码午夜精品直播| 欧美成人精品三级在线观看| 国产综合久久久| 图片区偷拍区小说区| 欧美日韩中文字幕一区|