亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

vueJs函數(shù)toRaw?markRaw使用對比詳解

 更新時(shí)間:2023年03月31日 12:22:50   作者:itclanCoder  
這篇文章主要為大家介紹了vueJs函數(shù)toRaw?markRaw使用對比詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

前言

針對一些特殊的需求,在項(xiàng)目里,需要將響應(yīng)式數(shù)據(jù)變?yōu)槠胀ㄔ碱愋蛿?shù)據(jù),這種情況是有的

Vue里,能夠?qū)⑵胀〝?shù)據(jù)類型的數(shù)據(jù)變?yōu)轫憫?yīng)式數(shù)據(jù),同時(shí),也能將響應(yīng)式類型數(shù)據(jù)變?yōu)槠胀愋蛿?shù)據(jù)

可以用于提升數(shù)據(jù)的性能

toRaw()函數(shù)

接收一個(gè)reactive響應(yīng)式數(shù)據(jù),將一個(gè)響應(yīng)式的數(shù)據(jù)變?yōu)槠胀愋偷臄?shù)據(jù),轉(zhuǎn)化為非響應(yīng)式數(shù)據(jù),相當(dāng)于還原對象,reactive相當(dāng)于制作,但對于ref響應(yīng)式數(shù)據(jù)不起作用

將一個(gè)由reactive生成的響應(yīng)式對象轉(zhuǎn)為普通(原始)對象

toRaw()可以返回由reactive(),readonly(),shallowReactive()shallowReadonly()創(chuàng)建的代理對應(yīng)的原始對象

這是一個(gè)可以用臨時(shí)讀取而不引起代理訪問/跟蹤開銷,或是寫入而不觸發(fā)更改的特殊方法,在官方文檔里,是不建議保存對原始對象的持久引用

使用場景:用于讀取響應(yīng)式對象的普通對象,對這個(gè)普通對象的所有操作,不會(huì)引起頁面的更新

const foo = {}
const reactiveFoo = reactive(foo)
console.log(toRaw(reactiveFoo) === foo)  // true

注意

針對對象,后續(xù)動(dòng)態(tài)新增的屬性,如果沒有把整個(gè)對象對外暴露出去,模板中使用新增的變量是不生效的(針對setup函數(shù)形式)

markRaw()函數(shù)

接收一個(gè)原始數(shù)據(jù),標(biāo)記一個(gè)對象,使它永遠(yuǎn)不會(huì)再成為響應(yīng)式對象,也就是數(shù)據(jù)在邏輯中即使修改變化了,但是頁面不會(huì)更新變化

將一個(gè)對象標(biāo)記為不可被轉(zhuǎn)為代理,返回該對象本身

應(yīng)用場景:

[1]. 有些值不應(yīng)該被設(shè)置為響應(yīng)式的,例如復(fù)雜的第三方類庫或Vue組件對象

[2]. 當(dāng)渲染具有不可變數(shù)據(jù)源的大列表時(shí),跳過響應(yīng)式轉(zhuǎn)換可以提高性能

const foo = markRaw({})
console.log(isReactive(reactive(foo))) // false
// 也適用于嵌套在其他響應(yīng)性對象
const bar = reactive({ foo })
console.log(isReactive(bar.foo)) // false

markRaw()shallowReactive()這樣淺層式API使你可以有選擇的避開默認(rèn)的深度響應(yīng)/只讀轉(zhuǎn)換,并在狀態(tài)關(guān)系譜中嵌入原始,非代理的對象

如果把一個(gè)嵌套的,沒有標(biāo)記的原始對象設(shè)置成一個(gè)響應(yīng)式對象,然后再次訪問它,你獲取到的是代理的版本,這可能會(huì)導(dǎo)致對象身份風(fēng)險(xiǎn)

即執(zhí)行一個(gè)依賴于對象身份的操作,但卻同時(shí)使用了同一對象的原始版本和代理版本

const foo = markRaw({
  nested: {}
})
const bar = reactive({
  // 盡管 `foo` 被標(biāo)記為了原始對象,但 foo.nested 卻沒有
  nested: foo.nested
})
console.log(foo.nested === bar.nested) // false

總結(jié)

ref()reactive()是將一個(gè)非響應(yīng)式類型數(shù)據(jù)變?yōu)轫憫?yīng)式數(shù)據(jù),而toRaw()markRaw()相當(dāng)于是對響應(yīng)式數(shù)據(jù)的還原,將一個(gè)響應(yīng)式數(shù)據(jù)變?yōu)榉琼憫?yīng)式數(shù)據(jù)

toRaw只針對響應(yīng)式對象類型的數(shù)據(jù)起作用,如果涉及到將一個(gè)響應(yīng)式數(shù)據(jù)轉(zhuǎn)變?yōu)榉琼憫?yīng)式數(shù)據(jù),只用于純數(shù)據(jù)的渲染,不引起頁面的更新,就可以使用toRawmarkRaw()

以上就是vueJs函數(shù)toRaw markRaw使用對比詳解的詳細(xì)內(nèi)容,更多關(guān)于vueJs函數(shù)toRaw markRaw的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • vue2老項(xiàng)目vite升級改造過程記錄

    vue2老項(xiàng)目vite升級改造過程記錄

    目前vite主要默認(rèn)是支持給vue3使用的,并且如果使用官方的cli創(chuàng)建的項(xiàng)目一樣會(huì)默認(rèn)使用vue3去構(gòu)建項(xiàng)目,此時(shí)對于一些vue2的老項(xiàng)目就顯得不友好了,下面這篇文章主要給大家介紹了關(guān)于vue2老項(xiàng)目vite升級改造的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • Vue 使用 Mint UI 實(shí)現(xiàn)左滑刪除效果CellSwipe

    Vue 使用 Mint UI 實(shí)現(xiàn)左滑刪除效果CellSwipe

    這篇文章主要介紹了Vue 使用 Mint UI 實(shí)現(xiàn)左滑刪除效果CellSwipe,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2018-04-04
  • 關(guān)于Element?table組件滾動(dòng)條不顯示的踩坑記錄

    關(guān)于Element?table組件滾動(dòng)條不顯示的踩坑記錄

    這篇文章主要介紹了關(guān)于Element?table組件滾動(dòng)條不顯示的踩坑記錄,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Vue實(shí)現(xiàn)路由跳轉(zhuǎn)至外界頁面

    Vue實(shí)現(xiàn)路由跳轉(zhuǎn)至外界頁面

    這篇文章主要介紹了Vue實(shí)現(xiàn)路由跳轉(zhuǎn)至外界頁面方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • 如何在Vue中使用CleaveJS格式化你的輸入內(nèi)容

    如何在Vue中使用CleaveJS格式化你的輸入內(nèi)容

    這篇文章主要介紹了如何在Vue中使用CleaveJS格式化你的輸入內(nèi)容,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-12-12
  • vue結(jié)合leaflet實(shí)現(xiàn)鷹眼圖

    vue結(jié)合leaflet實(shí)現(xiàn)鷹眼圖

    本文主要介紹了vue結(jié)合leaflet實(shí)現(xiàn)鷹眼圖,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • 微信jssdk邏輯在vue中的運(yùn)用詳解

    微信jssdk邏輯在vue中的運(yùn)用詳解

    這篇文章主要介紹了微信jssdk邏輯在vue中的運(yùn)用詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-11-11
  • Vue+canvas實(shí)現(xiàn)視頻截圖功能

    Vue+canvas實(shí)現(xiàn)視頻截圖功能

    這篇文章主要為大家詳細(xì)介紹了Vue+canvas實(shí)現(xiàn)視頻截圖功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • vue實(shí)現(xiàn)tab欄切換效果

    vue實(shí)現(xiàn)tab欄切換效果

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)tab欄切換效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • elementui源碼學(xué)習(xí)之仿寫一個(gè)el-divider組件

    elementui源碼學(xué)習(xí)之仿寫一個(gè)el-divider組件

    這篇文章主要為大家介紹了elementui源碼學(xué)習(xí)之仿寫一個(gè)el-divider組件示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08

最新評論