日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁(yè) > 科技  > 軟件

[Vue 3] 為什么需要同時(shí)使用 Ref 和 Reactive

來(lái)源: 責(zé)編: 時(shí)間:2023-08-09 23:02:05 428觀看
導(dǎo)讀AICube 開(kāi)放GPT-4給大家使用以及AI工具助手,可以簡(jiǎn)化大家生圖的的prompt。在使用 Options API 工作時(shí)聲明響應(yīng)性數(shù)據(jù)是直截了當(dāng)?shù)?。data 選項(xiàng)內(nèi)的所有內(nèi)容都會(huì)自動(dòng)變?yōu)轫憫?yīng)性,并在模板中可用。唯一需要注意的是,要將data

1UB28資訊網(wǎng)——每日最新資訊28at.com

AICube 開(kāi)放GPT-4給大家使用以及AI工具助手,可以簡(jiǎn)化大家生圖的的prompt。1UB28資訊網(wǎng)——每日最新資訊28at.com

在使用 Options API 工作時(shí)聲明響應(yīng)性數(shù)據(jù)是直截了當(dāng)?shù)?。data 選項(xiàng)內(nèi)的所有內(nèi)容都會(huì)自動(dòng)變?yōu)轫憫?yīng)性,并在模板中可用。唯一需要注意的是,要將data設(shè)為一個(gè)函數(shù),以防止在所有組件實(shí)例之間共享狀態(tài)。1UB28資訊網(wǎng)——每日最新資訊28at.com

讓我們討論一下Vue 3中發(fā)生了什么變化,以及為什么我們需要兩個(gè)不同的助手。1UB28資訊網(wǎng)——每日最新資訊28at.com

Vue 2中的響應(yīng)性

data 組件選項(xiàng)內(nèi)的每個(gè)屬性都將通過(guò) Object.defineProperty 轉(zhuǎn)換為getter/setter。這些getter/setter對(duì)我們來(lái)說(shuō)是看不見(jiàn)的,但在底層,它們使Vue在訪問(wèn)或修改屬性時(shí)能夠執(zhí)行依賴跟蹤。1UB28資訊網(wǎng)——每日最新資訊28at.com

每個(gè)組件都有一個(gè)關(guān)聯(lián)的觀察者,用于跟蹤在組件的渲染周期中使用的屬性。如果依賴項(xiàng)更新,觀察者會(huì)通知組件,然后觸發(fā)重新渲染。1UB28資訊網(wǎng)——每日最新資訊28at.com

Vue 3中的響應(yīng)性

在 Vue 3 中,一切都發(fā)生了變化。核心部分從零開(kāi)始重寫,現(xiàn)在由Javascript Proxies提供響應(yīng)性。Proxies是一種現(xiàn)代且優(yōu)雅的方式來(lái)觀察一個(gè)對(duì)象并在其屬性被訪問(wèn)或更新時(shí)得到通知。1UB28資訊網(wǎng)——每日最新資訊28at.com

可以通過(guò)以下簡(jiǎn)單的例子來(lái)理解代理是如何工作的:1UB28資訊網(wǎng)——每日最新資訊28at.com

const userInfo = {  firstName: "fotis",  age: 35,};const handler = {  get(target, property) {    if (property === "firstName") {      const name = target[property]      return name.charAt(0).toUpperCase() + name.slice(1);    }    if (property === "age") {      return '--'    }    return target[property]  },};const proxy = new Proxy(userInfo, handler);console.log(proxy.firstName) // "Fotis"console.log(proxy.age) // "--"

處理器內(nèi)部的get方法被稱為陷阱,每次訪問(wèn)對(duì)象的屬性時(shí)都會(huì)被調(diào)用。以類似的方式,可以定義一個(gè)設(shè)定的陷阱:1UB28資訊網(wǎng)——每日最新資訊28at.com

const userInfo = {  firstName: "Fotis",  age: 35,};const handler = {  set(target, prop, value) {    if (prop === "age") {      if (!Number.isInteger(value)) {        throw new TypeError("The age is not an integer");      }      if (value > 200) {        throw new RangeError("The age seems invalid");      }    }    target[prop] = value;    return true;  },};const proxy = new Proxy(userInfo, handler);proxy.age = 12 // OKproxy.age = 300 // Error: The age seems invalid

這正是 Vue 3 響應(yīng)性背后的理念。當(dāng)使用 reactive 助手聲明一個(gè)變量時(shí),會(huì)使用一個(gè) proxy. 來(lái)跟蹤任何變化。1UB28資訊網(wǎng)——每日最新資訊28at.com

function reactive(obj) {  return new Proxy(obj, {    get(target, key) {      track(target, key)      return target[key]    },    set(target, key, value) {      target[key] = value      trigger(target, key)    }  })}

當(dāng)然,響應(yīng)式助手的實(shí)際實(shí)現(xiàn)更為復(fù)雜,能處理邊緣情況,但其核心仍然使用proxy。1UB28資訊網(wǎng)——每日最新資訊28at.com

以上的片段解釋了為什么將響應(yīng)性變量解構(gòu)或重新分配給本地變量后,它就不再具有反應(yīng)性,因?yàn)樗辉儆|發(fā)源對(duì)象上的 get/set proxy  陷阱。1UB28資訊網(wǎng)——每日最新資訊28at.com

這看起來(lái)像是一個(gè)完美的解決方案,可以使所有事物都變成響應(yīng)式。但是有個(gè)問(wèn)題!根據(jù)定義,proxy只適用于復(fù)雜類型。這些包括對(duì)象、數(shù)組、映射和集合。要使一個(gè)原始類型變得反應(yīng)靈敏,我們?nèi)匀恍枰褂么?,但首先我們必須將其包裝在一個(gè)對(duì)象中。1UB28資訊網(wǎng)——每日最新資訊28at.com

function ref(value) {  const refObject = {    get value() {      track(refObject, 'value')      return value    },    set value(newValue) {      value = newValue      trigger(refObject, 'value')    }  }  return refObject}

這解釋了為什么必須在 script setup 中使用煩人的 .value 。而且,再次重構(gòu)或重新分配給本地變量也是行不通的。1UB28資訊網(wǎng)——每日最新資訊28at.com

總結(jié)

那么,為什么需要 Ref 和 Reactive 的答案是:Proxy。對(duì)于復(fù)雜類型,它們可以直接使用,但對(duì)于原始類型,需要?jiǎng)?chuàng)建一個(gè)代理對(duì)象。1UB28資訊網(wǎng)——每日最新資訊28at.com

本文轉(zhuǎn)載自微信公眾號(hào)「大遷世界」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系大遷世界公眾號(hào)。1UB28資訊網(wǎng)——每日最新資訊28at.com

1UB28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-5099-0.html[Vue 3] 為什么需要同時(shí)使用 Ref 和 Reactive

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 微軟發(fā)布.NET 8 最終預(yù)覽版,正式版計(jì)劃 11 月 14 日發(fā)布

下一篇: 如何優(yōu)雅地處理RabbitMQ中的消息丟失

標(biāo)簽:
  • 熱門焦點(diǎn)
  • K60 Pro官方停產(chǎn) 第三方瞬間漲價(jià)

    雖然沒(méi)有官方宣布,但Redmi的一些高管也已經(jīng)透露了,Redmi K60 Pro已經(jīng)停產(chǎn)且不會(huì)補(bǔ)貨,這一切都是為了即將到來(lái)的K60 Ultra鋪路,屬于廠家的正常操作。但有意思的是該機(jī)在停產(chǎn)之后
  • 6月安卓手機(jī)性價(jià)比榜:Note 12 Turbo斷層式碾壓

    6月份有一個(gè)618,雖然這是京東周年慶的日子,但別的電商也都不約而同的跟進(jìn)了,反正促銷沒(méi)壞處,廠商和用戶都能滿意。618期間一些產(chǎn)品也出現(xiàn)了歷史低價(jià),那么各個(gè)價(jià)位段的產(chǎn)品性價(jià)比
  • 一加首款折疊屏!一加Open渲染圖出爐:罕見(jiàn)單手可握小尺寸

    8月5日消息,此前就有爆料稱,一加首款折疊屏手機(jī)將會(huì)在第三季度上市,如今隨著時(shí)間臨近,新機(jī)的各種消息也開(kāi)始浮出水面。據(jù)悉,這款新機(jī)將會(huì)被命名為“On
  • 線程通訊的三種方法!通俗易懂

    線程通信是指多個(gè)線程之間通過(guò)某種機(jī)制進(jìn)行協(xié)調(diào)和交互,例如,線程等待和通知機(jī)制就是線程通訊的主要手段之一。 在 Java 中,線程等待和通知的實(shí)現(xiàn)手段有以下幾種方式:Object 類下
  • 如何正確使用:Has和:Nth-Last-Child

    我們可以用CSS檢查,以了解一組元素的數(shù)量是否小于或等于一個(gè)數(shù)字。例如,一個(gè)擁有三個(gè)或更多子項(xiàng)的grid。你可能會(huì)想,為什么需要這樣做呢?在某些情況下,一個(gè)組件或一個(gè)布局可能會(huì)
  • 一文掌握 Golang 模糊測(cè)試(Fuzz Testing)

    模糊測(cè)試(Fuzz Testing)模糊測(cè)試(Fuzz Testing)是通過(guò)向目標(biāo)系統(tǒng)提供非預(yù)期的輸入并監(jiān)視異常結(jié)果來(lái)發(fā)現(xiàn)軟件漏洞的方法??梢杂脕?lái)發(fā)現(xiàn)應(yīng)用程序、操作系統(tǒng)和網(wǎng)絡(luò)協(xié)議等中的漏洞或
  • 共享單車的故事講到哪了?

    來(lái)源丨??素?cái)經(jīng)與共享充電寶相差不多,共享單車已很久沒(méi)有被國(guó)內(nèi)熱點(diǎn)新聞關(guān)照到了。除了一再漲價(jià)和用戶直呼用不起了。近日多家媒體再發(fā)報(bào)道稱,成都、天津、鄭州等地多個(gè)共享單
  • OPPO、vivo、小米等國(guó)內(nèi)廠商Q2在印度智能手機(jī)市場(chǎng)份額依舊高達(dá)55%

    7月20日消息,據(jù)外媒報(bào)道,研究機(jī)構(gòu)的報(bào)告顯示,在全球智能手機(jī)出貨量同比仍在下滑的大背景下,印度這一有潛力的市場(chǎng)也未能幸免,出貨量同比也有下滑,多家廠
  • iQOO 11S新品發(fā)布會(huì)

    iQOO將在7月4日19:00舉行新品發(fā)布會(huì),推出杭州亞運(yùn)會(huì)電競(jìng)賽事官方用機(jī)iQOO 11S。
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
日韩视频在线观看免费| 欧美视频一区二区三区在线观看 | 久久成人av少妇免费| 香蕉久久夜色精品国产| 欧美一区二区三区四区在线| 欧美一区二区三区精品| 久久久国产精品亚洲一区| 国产日韩一区二区三区| 国产热re99久久6国产精品| 韩日视频一区| 亚洲精品1234| 一区二区激情视频| 午夜视频一区| 奶水喷射视频一区| 欧美一区二区精品久久911| 久久久一区二区三区| 欧美国产日韩在线| 国产精品免费aⅴ片在线观看| 国产亚洲精品久久飘花| 亚洲欧洲精品一区二区三区不卡| 亚洲免费观看| 久久国产手机看片| 欧美激情bt| 国产精一区二区三区| 在线观看欧美| 亚洲午夜精品一区二区三区他趣| 欧美在线亚洲| 欧美国产日韩二区| 国产精品午夜在线观看| 亚洲高清不卡一区| 亚洲在线观看| 老鸭窝亚洲一区二区三区| 国产精品国产三级国产专区53 | 国产精品a久久久久| 狠狠色狠狠色综合| 一区二区久久久久| 久久在线免费观看| 国产精品日本| 亚洲激情婷婷| 欧美亚洲一区| 欧美日产国产成人免费图片| 国产日韩视频| 中日韩视频在线观看| 久久久久久香蕉网| 日韩视频永久免费| 噜噜噜躁狠狠躁狠狠精品视频| 欧美成人视屏| 国产欧美日韩免费| 日韩亚洲欧美成人一区| 欧美专区中文字幕| 欧美日韩视频在线第一区| 一区二区三区在线视频观看| 亚洲视频视频在线| 欧美1区免费| 国产日韩欧美一区在线 | 国产精品人人做人人爽人人添| 亚洲国产综合在线看不卡| 性色一区二区| 国产精品狠色婷| 亚洲人精品午夜| 久久免费黄色| 国产日韩欧美成人| 亚洲综合日韩| 欧美午夜精品久久久久久久| 国产一区二区三区高清播放| 正在播放亚洲| 欧美成年人在线观看| 国产专区欧美精品| 亚洲你懂的在线视频| 欧美日韩国产在线| 亚洲国产日韩在线| 久久国产精品黑丝| 国产乱人伦精品一区二区| 制服丝袜激情欧洲亚洲| 欧美巨乳在线| 亚洲国产人成综合网站| 久久久一区二区三区| 国产一级精品aaaaa看| 亚洲欧美日韩国产中文 | 久久亚洲一区二区三区四区| 国产精品日韩在线观看| 亚洲香蕉在线观看| 欧美日韩综合在线| 一本久道久久综合婷婷鲸鱼| 欧美片在线观看| 日韩视频在线免费| 欧美另类变人与禽xxxxx| 99re6这里只有精品视频在线观看| 欧美成人国产| 亚洲人成精品久久久久| 欧美成人国产一区二区| 亚洲电影专区| 欧美成人精品一区| 亚洲精品国产精品国自产观看| 欧美aⅴ一区二区三区视频| 亚洲激情第一区| 欧美高清不卡| 99在线精品观看| 欧美日韩国产成人高清视频| 99国产麻豆精品| 欧美日韩一区二区视频在线观看| 99视频精品在线| 欧美三区在线观看| 亚洲一区在线免费| 国产欧美va欧美va香蕉在| 欧美一区二区视频网站| 国产一区二区剧情av在线| 久久久久成人精品免费播放动漫| 黄色成人在线网站| 免费观看在线综合色| 亚洲美女在线看| 国产精品久久久久久影视| 小处雏高清一区二区三区| 国内一区二区三区| 欧美成人免费一级人片100| 99国内精品久久| 国产精品免费电影| 一本色道久久加勒比精品| 国产精品久久久久久久电影| 欧美亚洲一区二区在线观看| 狠狠色综合网| 欧美精品国产精品| 亚洲字幕一区二区| 激情久久久久| 欧美国产一区二区在线观看| 中文一区二区| 国产日韩av高清| 欧美1区2区| 亚洲特黄一级片| 国产亚洲一级高清| 欧美插天视频在线播放| 亚洲自拍另类| 亚洲第一二三四五区| 欧美日韩国产系列| 欧美一区二区视频在线观看| 亚洲东热激情| 国产精品成人一区二区艾草| 久久精品国产久精国产思思| 91久久国产综合久久91精品网站| 国产精品av一区二区| 久久久国产精品一区| 亚洲乱亚洲高清| 国产日韩欧美不卡在线| 女人天堂亚洲aⅴ在线观看| 这里只有视频精品| 一色屋精品视频在线观看网站| 欧美日韩在线三级| 久久久久久久高潮| 99精品国产热久久91蜜凸| 国产亚洲在线| 欧美韩日亚洲| 欧美在线观看视频一区二区| 亚洲精选久久| 国产一区二区黄色| 欧美日韩国产综合视频在线观看| 久久av一区| 一区二区高清视频在线观看| 国内外成人免费激情在线视频网站 | 欧美不卡视频| 亚洲欧美文学| 91久久极品少妇xxxxⅹ软件| 国产欧美综合在线| 欧美精品免费观看二区| 羞羞视频在线观看欧美| 日韩视频中文字幕| 激情综合在线| 国产精品乱人伦中文| 欧美国产欧美亚洲国产日韩mv天天看完整 | 久久这里只有| 性色av一区二区三区| 一区二区三区免费在线观看| 亚洲国产精品va在线看黑人 | 亚洲视频你懂的| 亚洲精品网站在线播放gif| 一区二区三区在线视频免费观看| 国产精品自在线| 国产精品99免费看| 欧美日韩视频在线一区二区观看视频 | 亚洲国产成人精品女人久久久| 国产精品有限公司| 欧美日韩免费高清| 欧美18av| 裸体女人亚洲精品一区| 欧美在线free| 亚洲永久免费av| 亚洲免费黄色| 亚洲电影视频在线| 国产在线欧美| 国产精品午夜国产小视频| 欧美国产日韩xxxxx| 蜜臀av一级做a爰片久久| 午夜国产不卡在线观看视频| 亚洲私拍自拍| 亚洲免费成人av| 伊人夜夜躁av伊人久久| 国产一区二区三区在线观看视频| 欧美日韩国产限制| 免费高清在线一区| 久久久.com| 久久亚洲精品一区| 欧美在线一级视频| 亚洲欧美三级伦理| 亚洲欧美激情诱惑| 亚洲一区二区三区乱码aⅴ|