国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

vue3 動態(tài)組件和異步組件

這篇具有很好參考價值的文章主要介紹了vue3 動態(tài)組件和異步組件。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.動態(tài)組件

<template>
  <div>
    <h1>組件切換</h1>
    <component :is="currentComponent"></component>
    <button @click="toggleComponent">點擊切換組件</button>
  </div>
</template>

<script setup lang="ts">
import { markRaw, shallowRef } from 'vue';
import ComponentA from './components/ComponentA.vue';
import ComponentB from './components/ComponentB.vue';


    const currentComponent = shallowRef(markRaw(ComponentA));

    const toggleComponent = () => {
      currentComponent.value = currentComponent.value === ComponentA ? markRaw(ComponentB) : markRaw(ComponentA);
    };

   

</script>
<!-- markRaw 方法用于將一個對象標記為 "原始",從而告訴 Vue 不需要將其轉換為響應式對象。標記為 "原始" 的對象在響應式系統(tǒng)中不會被追蹤更改,這可以幫助避免不必要的性能開銷。

shallowRef 是用于創(chuàng)建一個淺的響應式引用的方法。與 ref 創(chuàng)建的響應式引用不同,shallowRef 不會對其內部對象進行深度觀察,而只觀察引用本身的變化。這意味著只有當引用本身發(fā)生變化時,才會觸發(fā)更新,而不會遞歸觀察引用內部對象的變化。

這兩個方法通常用于特定場景下的性能優(yōu)化。

在上述修改代碼的例子中,我們使用 markRaw 將組件標記為非響應式的,避免了不必要的性能開銷。而使用 shallowRef 創(chuàng)建淺的響應式引用,只觀察引用本身的變化,而不觀察組件內部的變化。這樣可以保證在切換組件時,只有引用本身變化時才會觸發(fā)組件的更新,提高了性能效率。 -->

當使用 <component :is="..."> 來在多個組件間作切換時,被切換掉的組件會被卸載。我們可以通過 <KeepAlive>組件強制被切換掉的組件仍然保持“存活”的狀態(tài)。

vue3 動態(tài)組件和異步組件,vue學習筆記,javascript,前端,vue.js文章來源地址http://www.zghlxwxcb.cn/news/detail-715333.html

2.異步組件

<template>
  <div>
    <h1>組件切換</h1>
    <Keep-alive><component :is="currentComponent"></component></Keep-alive>
    
    <button @click="toggleComponent">點擊切換組件</button>
  </div>
</template>

<script setup lang="ts">
import { markRaw, shallowRef } from 'vue';
import ComponentA from './components/ComponentA.vue';
import { defineAsyncComponent } from 'vue'
const ComponentB =defineAsyncComponent(()=>import  ("./components/ComponentB.vue"))
    const currentComponent = shallowRef(markRaw(ComponentA));

    const toggleComponent = () => {
      currentComponent.value = currentComponent.value === ComponentA ? markRaw(ComponentB) : markRaw(ComponentA);
    };

   

</script>
<!-- markRaw 方法用于將一個對象標記為 "原始",從而告訴 Vue 不需要將其轉換為響應式對象。標記為 "原始" 的對象在響應式系統(tǒng)中不會被追蹤更改,這可以幫助避免不必要的性能開銷。

shallowRef 是用于創(chuàng)建一個淺的響應式引用的方法。與 ref 創(chuàng)建的響應式引用不同,shallowRef 不會對其內部對象進行深度觀察,而只觀察引用本身的變化。這意味著只有當引用本身發(fā)生變化時,才會觸發(fā)更新,而不會遞歸觀察引用內部對象的變化。

這兩個方法通常用于特定場景下的性能優(yōu)化。

在上述修改代碼的例子中,我們使用 markRaw 將組件標記為非響應式的,避免了不必要的性能開銷。而使用 shallowRef 創(chuàng)建淺的響應式引用,只觀察引用本身的變化,而不觀察組件內部的變化。這樣可以保證在切換組件時,只有引用本身變化時才會觸發(fā)組件的更新,提高了性能效率。 -->

到了這里,關于vue3 動態(tài)組件和異步組件的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【Vue3】學習筆記-新的組件

    在Vue2中: 組件必須有一個根標簽 在Vue3中: 組件可以沒有根標簽, 內部會將多個標簽包含在一個Fragment虛擬元素中 好處: 減少標簽層級, 減小內存占用 什么是Teleport?—— Teleport 是一種能夠將我們的 組件html結構 移動到指定位置的技術。 等待異步組件時渲染一些額外內容,讓應

    2024年02月16日
    瀏覽(55)
  • vue3中實現(xiàn)異步組件

    vue3中實現(xiàn)異步組件

    使用場景一:當組件進入視窗時再進行加載 假設頁面中有三個組件A、B、C C組件中有一張圖片 打開頁面: ? 如果一個頁面中的內容非常多,用戶再首次打開時并沒有瀏覽到下方的內容,但頁面必須加載完下方的內容才會顯示,這無疑非常影響性能 接下來我們做一些調整 創(chuàng)建

    2024年02月06日
    瀏覽(24)
  • 【Vue】動態(tài)組件和異步組件

    【Vue】動態(tài)組件和異步組件

    ??今天我們來學習動態(tài)組件和異步組件。 什么是動態(tài)組件? 什么是異步組件? 代碼示例: 解讀代碼: 子組件我給它起個名字叫做input-item,??我創(chuàng)建這樣的一個組件,然后它里面會有一個input框, 在這里面我可以用一下組件,怎么用? 我們直接在模板里面去寫一下 i

    2024年02月08日
    瀏覽(27)
  • Vue組件——動態(tài)、緩存、異步組件

    Vue組件——動態(tài)、緩存、異步組件

    語法:靜態(tài):component is=\\\"組件名\\\"/component ? ? ? ? ? ?動態(tài):component :is=\\\"組件名\\\"/component 可以用來實現(xiàn)頁面的切換: 問題:當我們在其中一個組件中寫了一個輸入框,在輸入過一次后,切換到其他頁面然后再切換回來時,之前輸入的值就沒有了。因為切換走當前組件時,該組

    2024年02月09日
    瀏覽(24)
  • VUE組件--動態(tài)組件、組件保持存活、異步組件

    VUE組件--動態(tài)組件、組件保持存活、異步組件

    有些場景可能會需要在多個組件之間進行來回切換,在vue中則使用 component :is=\\\"...\\\" 來實現(xiàn)組件間的來回切換 ?changeHandler()使用三目運算符,來實現(xiàn)Component1和Component2之間的相互切換 ?默認為組件1 ? 當組件1切換到組件2時,組件1會被強行銷毀 初始態(tài):? 點擊“更新數(shù)據(jù)”: 點

    2024年01月19日
    瀏覽(24)
  • vue3父組件異步props傳值,子組件接收不到值問題

    當我們使用vue3進行開發(fā)在創(chuàng)建組件的時候,子組件經(jīng)常需要調用父組件的數(shù)據(jù),那么這是就需要vue3的props進行對父組件與子組件通信來達到傳值的效果 在使用props進行父子組件通信時,子組件無法成功渲染數(shù)據(jù),導致拿到數(shù)據(jù)為空問題 提示:這里填寫問題的分析: 在使用

    2024年02月11日
    瀏覽(21)
  • watch監(jiān)聽,解決Vue3父組件異步props傳值,子組件接收不到的問題

    watch監(jiān)聽,解決Vue3父組件異步props傳值,子組件接收不到的問題

    寫靜態(tài)數(shù)據(jù)的時候父組件傳值子組件接收并渲染是沒問題的,但當父組件異步獲取數(shù)據(jù),子組件接收數(shù)據(jù)會晚于渲染,就會產(chǎn)生接收不到的問題,我在用echarts繪制圖表時圖表就直接不顯示 ?用watch監(jiān)聽props數(shù)據(jù)并在watch內進行賦值操作可解決該問題 直接上代碼 父組件,vue3語法

    2024年02月15日
    瀏覽(36)
  • Vue3的手腳架使用和組件父子間通信-插槽(Options API)學習筆記

    全局安裝最新vue3 升級Vue CLI: 如果是比較舊的版本,可以通過下面命令來升級 通過腳手架創(chuàng)建項目 父組件 子組件 UserComponent.vue 父組件 **子組件1 JiaComponent.vue ** ** 子組件2 JianComponent.vue ** 父組件 子組件 TitleComponents.vue 父組件 **子組件 NavComponent.vue ** 父組件 子組件 NavCompone

    2024年02月05日
    瀏覽(50)
  • vue3 動態(tài)加載組件、動態(tài)引入組件

    vue3 動態(tài)加載組件、動態(tài)引入組件

    1.問題 在做一個用 vite 構建的 vue3 項目時,動態(tài)拉取導入 .vue 頁面,然后控制臺一直有以下提示,頁面也無法渲染出來。 2.分析 根據(jù)上面的報錯提示,讓我們安裝并使用: @rollup/plugin-dynamic-import-vars 這個插件(最終沒有這個方案)。 Vite官方文檔說 需要使用Glob 導入形式 ,然

    2023年04月09日
    瀏覽(25)
  • vue前端性能優(yōu)化之分包策略、異步組件、Gzip壓縮

    vue前端性能優(yōu)化之分包策略、異步組件、Gzip壓縮

    目錄 一、Gzip壓縮 二、異步組件 三、分包策略 最后 ? ????????項目的性能優(yōu)化是有完整項目經(jīng)歷的開發(fā)者都會遇到得一個問題。這是整個項目開發(fā)最后的一步,也是最關鍵的一步,做一個項目并不是單單完成功能就算結束了,作為開發(fā)者,更要站在用戶角度去進行項目體

    2024年02月09日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包