vue3使用reactive和ref的注意事項(xiàng)

Vue3為何推薦使用ref而不是reactive?

首先二者的異同點(diǎn)是:

1.ref 用于將基本類型的數(shù)據(jù)(如字符串、數(shù)字得问,布爾值等)和引用數(shù)據(jù)類型(對(duì)象)轉(zhuǎn)換為響應(yīng)式數(shù)據(jù)。使用 ref 定義的數(shù)據(jù)可以通過(guò).value屬性訪問(wèn)和修改软免。

? ? ?ref聲明使用:? ??

? ? ? ? ? ? ? ref聲明 let num = ref(0);let arr = ref([]);? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ?ref使用? num.value = 2; arr.value = [1,2,3];

2.reactive 用于將對(duì)象轉(zhuǎn)換為響應(yīng)式數(shù)據(jù)宫纬,包括復(fù)雜的嵌套對(duì)象和數(shù)組。使用 reactive 定義的數(shù)據(jù)可以直接訪問(wèn)和修改屬性膏萧。

? ? ?reactive聲明使用:?

? ? ? ? ? ? ? ? ?聲明: let obj= reactive({nunm:1}); let arr= reactive([1,2,3]);??

? ? ? ? ? ? ? ? ?使用:obj.num = 2; arr[0] = 3;?

原因一:reacitve功能單一漓骚,只能聲明引用數(shù)據(jù)類型,而無(wú)法聲明基本數(shù)據(jù)類型榛泛。而ref既可以聲明基本數(shù)據(jù)類型蝌蹂,也可以聲明引用數(shù)據(jù)類型。

? 注意: 如果使用reactive聲明基礎(chǔ)數(shù)據(jù)類型并不會(huì)報(bào)錯(cuò)曹锨,但是聲明的變量不具備響應(yīng)式的特點(diǎn)孤个,無(wú)法達(dá)到數(shù)據(jù)驅(qū)動(dòng)改變視圖更新的基本需求,所以這種使用方式不推薦使用沛简。


原因二:reactive使用不當(dāng)會(huì)失去響應(yīng)齐鲤。? ??

? let state = reactive({count:0});

? state = {count: 10}; 這樣直接賦值一整個(gè)對(duì)象會(huì)導(dǎo)致數(shù)據(jù)更新斥废,但DOM沒(méi)有同步更新從而失去響應(yīng)式。

注意:reactive聲明的對(duì)象在解構(gòu)賦值后會(huì)丟失響應(yīng)性给郊,需要配合使用toRefs方法牡肉。

例如:const state = reactive({ count :0});

? ? ? ? ? ? let { count } = toRefs(state);

? ? ? ? ? ? count += 1;

需要這樣結(jié)構(gòu)丑罪,count才會(huì)同步更改荚板。

解決辦法:需要一個(gè)個(gè)賦值,state.count = 10,這樣賦值才會(huì)保持響應(yīng)性吩屹,保證數(shù)據(jù)和視圖同步更新跪另。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市煤搜,隨后出現(xiàn)的幾起案子免绿,更是在濱河造成了極大的恐慌,老刑警劉巖擦盾,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嘲驾,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡迹卢,警方通過(guò)查閱死者的電腦和手機(jī)辽故,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)腐碱,“玉大人誊垢,你說(shuō)我怎么就攤上這事≈⒓” “怎么了喂走?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)谋作。 經(jīng)常有香客問(wèn)我芋肠,道長(zhǎng),這世上最難降的妖魔是什么遵蚜? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任帖池,我火速辦了婚禮,結(jié)果婚禮上吭净,老公的妹妹穿的比我還像新娘睡汹。我一直安慰自己,他們只是感情好攒钳,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著雷滋,像睡著了一般不撑。 火紅的嫁衣襯著肌膚如雪文兢。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,760評(píng)論 1 289
  • 那天焕檬,我揣著相機(jī)與錄音姆坚,去河邊找鬼。 笑死实愚,一個(gè)胖子當(dāng)著我的面吹牛兼呵,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播腊敲,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼击喂,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了碰辅?” 一聲冷哼從身側(cè)響起懂昂,我...
    開(kāi)封第一講書(shū)人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎没宾,沒(méi)想到半個(gè)月后凌彬,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡循衰,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年铲敛,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片会钝。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡伐蒋,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出顽素,到底是詐尸還是另有隱情咽弦,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布胁出,位于F島的核電站型型,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏全蝶。R本人自食惡果不足惜闹蒜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望抑淫。 院中可真熱鬧绷落,春花似錦、人聲如沸始苇。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至函喉,卻和暖如春避归,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背管呵。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工梳毙, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人捐下。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓账锹,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親坷襟。 傳聞我的和親對(duì)象是個(gè)殘疾皇子奸柬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容