Vue3 響應(yīng)式API——Ref狐胎、Reactive

1. reactive api

為什么要使用reactive api鸭栖,因?yàn)橄胍獜?fù)刻options api的做法,在setup函數(shù)中是行不通的握巢,data函數(shù)中定義的變量之所以是響應(yīng)式的晕鹊,是因?yàn)榻?jīng)過了reactive函數(shù)的處理。

可以看到這樣的寫法變量counter不是響應(yīng)式的镜粤。

使用reactive api修改之后:將counter放在對(duì)象中捏题,由reactive函數(shù)處理,使用處理過的返回值中的couter

可以看到肉渴,此時(shí)state對(duì)象中的counter已經(jīng)是響應(yīng)式的了公荧。

reactive api傳入類型必須是對(duì)象或者數(shù)組,這樣在使用時(shí)同规,需要用state.counter的形式來取用counter循狰,感覺有點(diǎn)麻煩,這時(shí)Vue3提供了另一個(gè)api:ref api券勺。

2.ref api

使用ref api需要注意的地方:

1.ref傳入類型:所有類型绪钥,比reactive api不受限制;

2.ref返回一個(gè)響應(yīng)式的對(duì)象关炼,value屬性維護(hù)其值程腹;

3.模板(template)中會(huì)自動(dòng)解包,不需要以.value的形式獲取值儒拂,但setup函數(shù)中不會(huì)自動(dòng)解包寸潦。

如果我將counter放在一個(gè)對(duì)象中,再使用ref社痛,那么模板是否會(huì)自動(dòng)解包:不會(huì)

4. 原因:ref的解包是一個(gè)淺層的解包

此時(shí)需要.value來獲取這個(gè)ref對(duì)象的值

但是reactive api 包裹的對(duì)象见转,可以深層解包

3.reactive判斷的api

1. isProxy: 檢查對(duì)象是否由reactive或readonly創(chuàng)建的proxy;

2. isReactive: 檢查對(duì)象是否是由 reactive創(chuàng)建的響應(yīng)式代理蒜哀,但是如果該代理是 readonly 建的斩箫,但包裹了由 reactive 創(chuàng)建的另一個(gè)代理,它也會(huì)返回 true撵儿;

3.? isReadonly:?檢查對(duì)象是否是由 readonly 創(chuàng)建的只讀代理乘客;

4.? toRaw: 返回 reactive 或 readonly 代理的原始對(duì)象(不建議保留對(duì)原始對(duì)象的持久引用)

5. shallowReactive: 創(chuàng)建一個(gè)響應(yīng)式代理,它跟蹤其自身 property 的響應(yīng)性淀歇,但不執(zhí)行嵌套對(duì)象的深層響應(yīng)式轉(zhuǎn)換(深層還是原生對(duì)象)寨典;

6. shallowReadonly: 創(chuàng)建一個(gè) proxy,使其自身的 property 為只讀房匆,但不執(zhí)行套對(duì)象的深度只讀轉(zhuǎn)換(深層還是可讀、可寫的);

4.Ref api 的補(bǔ)充

假如想對(duì)響應(yīng)式對(duì)象解構(gòu)賦值浴鸿,盡管是reactive處理過的對(duì)象井氢,解構(gòu)出來的值不會(huì)是響應(yīng)式的

想讓其成為響應(yīng)式的,可以使用toRefs api

1.toRefs api: 將reoctive對(duì)象中的所有屬性都轉(zhuǎn)成ref岳链,建立連接

而且花竞,toRefs api相當(dāng)于在info中的每一個(gè)屬性的value與解構(gòu)之后的值做了連接,一個(gè)更改之后另一個(gè)也會(huì)隨之更改

如果只想對(duì)其中一個(gè)屬性轉(zhuǎn)換為ref掸哑,那么可以使用toRef api

2.toRef: 對(duì)其中一個(gè)屬性進(jìn)行轉(zhuǎn)換ref约急,建立連接

格式:toRef(object,key)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市苗分,隨后出現(xiàn)的幾起案子厌蔽,更是在濱河造成了極大的恐慌,老刑警劉巖摔癣,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件奴饮,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡择浊,警方通過查閱死者的電腦和手機(jī)戴卜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來琢岩,“玉大人投剥,你說我怎么就攤上這事〉?祝” “怎么了江锨?”我有些...
    開封第一講書人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)攒磨。 經(jīng)常有香客問我泳桦,道長(zhǎng),這世上最難降的妖魔是什么娩缰? 我笑而不...
    開封第一講書人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任灸撰,我火速辦了婚禮,結(jié)果婚禮上拼坎,老公的妹妹穿的比我還像新娘浮毯。我一直安慰自己,他們只是感情好泰鸡,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開白布债蓝。 她就那樣靜靜地躺著,像睡著了一般盛龄。 火紅的嫁衣襯著肌膚如雪饰迹。 梳的紋絲不亂的頭發(fā)上芳誓,一...
    開封第一講書人閱讀 52,156評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音啊鸭,去河邊找鬼锹淌。 笑死,一個(gè)胖子當(dāng)著我的面吹牛赠制,可吹牛的內(nèi)容都是我干的赂摆。 我是一名探鬼主播,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼钟些,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼烟号!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起政恍,我...
    開封第一講書人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤汪拥,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后抚垃,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體喷楣,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年鹤树,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了铣焊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡罕伯,死狀恐怖曲伊,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情追他,我是刑警寧澤坟募,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布,位于F島的核電站邑狸,受9級(jí)特大地震影響懈糯,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜单雾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一赚哗、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧硅堆,春花似錦屿储、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至茄菊,卻和暖如春疯潭,著一層夾襖步出監(jiān)牢的瞬間赊堪,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來泰國(guó)打工竖哩, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留雹食,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓期丰,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親吃挑。 傳聞我的和親對(duì)象是個(gè)殘疾皇子钝荡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359

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