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

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

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

一、簡介

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

二、使用場景

2.1 避免性能開銷

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

2.2 防止意外修改

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

三、基本使用

3.1 標記對象

markRaw()的主要作用是標記一個對象,使其不再被reactiveshallowReactive轉換為響應式代理。

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

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

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

在上面的例子中,markedObject即使被包裹在reactive中,也不會變成響應式對象。

四、功能詳解

4.1 markRaw與reactive的區(qū)別

reactive會將整個對象轉換為響應式代理,而markRaw則會阻止這種轉換。

4.2 markRaw與ref的區(qū)別

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

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

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

  const stateRef = ref(rawObject);

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

五、最佳實踐及案例

5.1 使用大型第三方庫對象

在使用大型第三方庫(如圖表庫、地圖庫)時,可以使用markRaw()避免這些對象被Vue的響應式系統(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ù)據

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

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

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

六、總結

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

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

相關文章

  • 在vue中使用公共過濾器filter的方法

    在vue中使用公共過濾器filter的方法

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

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

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

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

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

    Vue3+Vite項目部署后刷新白屏問題的解決方法

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

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

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

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

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

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

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

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

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

    淺聊一下Vue2中的functional組件

    最近聽到有人提到了Vue2的functional組件,大致上是說這個東西沒有生命周期,在渲染層面上,會減少很多的消耗,一番處理之后,首屏時間和內存都能減少不少,所以本文小編就來和大家聊聊Vue2中的functional組件<BR>
    2023-08-08
  • Vue中Quill富文本編輯器的使用教程

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

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

最新評論