欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue3響應(yīng)式高階用法之markRaw()的使用

 更新時(shí)間:2024年09月24日 10:02:00   作者:訾博ZiBo  
在Vue3中,markRaw()用于防止對(duì)象被轉(zhuǎn)換為響應(yīng)式,適用于管理大型庫(kù)對(duì)象或靜態(tài)數(shù)據(jù),有助于優(yōu)化性能和防止不必要的修改,本文就來(lái)詳細(xì)的介紹一下,感興趣的可以了解一下

一、簡(jiǎn)介

在Vue3中,響應(yīng)式系統(tǒng)是其核心特性之一,它允許我們輕松地管理和更新應(yīng)用程序的狀態(tài)。然而,有時(shí)我們需要排除某些對(duì)象,使其不被響應(yīng)式系統(tǒng)追蹤。markRaw()就是為此目的而設(shè)計(jì)的。本文將詳細(xì)介紹markRaw()的作用、使用場(chǎng)景及最佳實(shí)踐。

二、使用場(chǎng)景

2.1 避免性能開(kāi)銷(xiāo)

在某些情況下,我們可能不希望某個(gè)對(duì)象被Vue的響應(yīng)式系統(tǒng)追蹤,以避免不必要的性能開(kāi)銷(xiāo)。例如,大型的第三方庫(kù)對(duì)象或不需要響應(yīng)式的靜態(tài)數(shù)據(jù)。

2.2 防止意外修改

有些對(duì)象在應(yīng)用程序的生命周期中不應(yīng)該被修改。通過(guò)markRaw()可以確保這些對(duì)象不會(huì)被意外地轉(zhuǎn)換為響應(yīng)式,從而避免不必要的狀態(tài)變更。

三、基本使用

3.1 標(biāo)記對(duì)象

markRaw()的主要作用是標(biāo)記一個(gè)對(duì)象,使其不再被reactiveshallowReactive轉(zhuǎn)換為響應(yīng)式代理。

<script lang="ts" setup>
  import { markRaw, reactive } from 'vue';

  const someObject = { name: '天天鴨' };
  const markedObject = markRaw(someObject);

  // 即使使用 reactive,markedObject 也不會(huì)變成響應(yīng)式
  const state = reactive({ obj: markedObject });
</script>

在上面的例子中,markedObject即使被包裹在reactive中,也不會(huì)變成響應(yīng)式對(duì)象。

四、功能詳解

4.1 markRaw與reactive的區(qū)別

reactive會(huì)將整個(gè)對(duì)象轉(zhuǎn)換為響應(yīng)式代理,而markRaw則會(huì)阻止這種轉(zhuǎn)換。

4.2 markRaw與ref的區(qū)別

ref主要用于創(chuàng)建一個(gè)響應(yīng)式引用,它可以封裝任何類(lèi)型的值如字符串、數(shù)字和對(duì)象。當(dāng)你將一個(gè)對(duì)象放入ref時(shí),ref本身依然是響應(yīng)式的,而markRaw的作用是阻止對(duì)象被轉(zhuǎn)換為響應(yīng)式,這和ref的設(shè)計(jì)不匹配。

<script lang="ts" setup>
  import { ref, markRaw } from 'vue';

  const someObject = { name: '天天鴨' };
  const rawObject = markRaw(someObject);

  const stateRef = ref(rawObject);

  // ref 本身是響應(yīng)式的,但 rawObject 不會(huì)被轉(zhuǎn)換為響應(yīng)式
  stateRef.value.name = '天天鵝'; // 這不會(huì)觸發(fā)響應(yīng)式更新
</script>

五、最佳實(shí)踐及案例

5.1 使用大型第三方庫(kù)對(duì)象

在使用大型第三方庫(kù)(如圖表庫(kù)、地圖庫(kù))時(shí),可以使用markRaw()避免這些對(duì)象被Vue的響應(yīng)式系統(tǒng)追蹤,從而提高性能。

<script lang="ts" setup>
  import { markRaw } from 'vue';
  import * as echarts from 'echarts';

  const chartInstance = markRaw(echarts.init(document.getElementById('chart')));
</script>

5.2 靜態(tài)配置數(shù)據(jù)

對(duì)于一些靜態(tài)配置數(shù)據(jù),可以使用markRaw()確保它們不會(huì)被意外修改。

<script lang="ts" setup>
  import { markRaw } from 'vue';

  const config = markRaw({
    apiEndpoint: 'https://api.example.com',
    timeout: 5000
  });
</script>

六、總結(jié)

markRaw()是Vue3中一個(gè)非常有用的工具,特別是在需要控制對(duì)象的響應(yīng)式行為時(shí)。通過(guò)合理地使用markRaw(),我們可以避免不必要的性能開(kāi)銷(xiāo)和防止意外的狀態(tài)變更,從而更好地管理應(yīng)用程序的狀態(tài)。

到此這篇關(guān)于Vue3響應(yīng)式高階用法之markRaw()的使用的文章就介紹到這了,更多相關(guān)Vue3 markRaw()內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 在vue中使用公共過(guò)濾器filter的方法

    在vue中使用公共過(guò)濾器filter的方法

    這篇文章主要介紹了在vue中使用公共過(guò)濾器filter的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-06-06
  • vue-cli中的圖片資源存放位置詳解

    vue-cli中的圖片資源存放位置詳解

    這篇文章主要介紹了vue-cli中的圖片資源存放位置,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • VuePress 中如何增加用戶登錄功能

    VuePress 中如何增加用戶登錄功能

    VuePress 由兩部分組成:一個(gè)以 Vue 驅(qū)動(dòng)的主題系統(tǒng)的簡(jiǎn)約靜態(tài)網(wǎng)站生成工具,和一個(gè)為編寫(xiě)技術(shù)文檔而優(yōu)化的默認(rèn)主題。它是為了支持 Vue 子項(xiàng)目的文檔需求而創(chuàng)建的
    2019-11-11
  • Vue3+Vite項(xiàng)目部署后刷新白屏問(wèn)題的解決方法

    Vue3+Vite項(xiàng)目部署后刷新白屏問(wèn)題的解決方法

    Vue3 + Vite 項(xiàng)目部署后出現(xiàn)了手動(dòng)刷新頁(yè)面時(shí)出現(xiàn)白屏的問(wèn)題,下面小編就來(lái)和大家探討一下白屏出現(xiàn)的原因以及具體的解決方法,需要的可以參考下
    2025-03-03
  • vue基礎(chǔ)之data存儲(chǔ)數(shù)據(jù)及v-for循環(huán)用法示例

    vue基礎(chǔ)之data存儲(chǔ)數(shù)據(jù)及v-for循環(huán)用法示例

    這篇文章主要介紹了vue基礎(chǔ)之data存儲(chǔ)數(shù)據(jù)及v-for循環(huán)用法,結(jié)合實(shí)例形式分析了vue.js使用data存儲(chǔ)數(shù)據(jù)、讀取數(shù)據(jù)及v-for遍歷數(shù)據(jù)相關(guān)操作技巧,需要的朋友可以參考下
    2019-03-03
  • vue 使用lodash實(shí)現(xiàn)對(duì)象數(shù)組深拷貝操作

    vue 使用lodash實(shí)現(xiàn)對(duì)象數(shù)組深拷貝操作

    這篇文章主要介紹了vue 使用lodash實(shí)現(xiàn)對(duì)象數(shù)組深拷貝操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-09-09
  • Vue實(shí)現(xiàn)調(diào)節(jié)窗口大小時(shí)觸發(fā)事件動(dòng)態(tài)調(diào)節(jié)更新組件尺寸的方法

    Vue實(shí)現(xiàn)調(diào)節(jié)窗口大小時(shí)觸發(fā)事件動(dòng)態(tài)調(diào)節(jié)更新組件尺寸的方法

    今天小編就為大家分享一篇Vue實(shí)現(xiàn)調(diào)節(jié)窗口大小時(shí)觸發(fā)事件動(dòng)態(tài)調(diào)節(jié)更新組件尺寸的方法。具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • 實(shí)現(xiàn)vuex與組件data之間的數(shù)據(jù)同步更新方式

    實(shí)現(xiàn)vuex與組件data之間的數(shù)據(jù)同步更新方式

    今天小編就為大家分享一篇實(shí)現(xiàn)vuex與組件data之間的數(shù)據(jù)同步更新方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • 淺聊一下Vue2中的functional組件

    淺聊一下Vue2中的functional組件

    最近聽(tīng)到有人提到了Vue2的functional組件,大致上是說(shuō)這個(gè)東西沒(méi)有生命周期,在渲染層面上,會(huì)減少很多的消耗,一番處理之后,首屏?xí)r間和內(nèi)存都能減少不少,所以本文小編就來(lái)和大家聊聊Vue2中的functional組件<BR>
    2023-08-08
  • Vue中Quill富文本編輯器的使用教程

    Vue中Quill富文本編輯器的使用教程

    這篇文章主要介紹了Vue中Quill富文本編輯器的使用教程,包括自定義工具欄、自定義字體選項(xiàng)、圖片拖拽上傳、圖片改變大小等使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09

最新評(píng)論