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

Vue3中使用component :is 加載組件

這篇具有很好參考價(jià)值的文章主要介紹了Vue3中使用component :is 加載組件。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

1.不使用setup語(yǔ)法糖,這種方式和vue2差不多,is可以是個(gè)字符串

<template>
 
  <Child1 />
  <Child2 />
  <component :is="currentComp"></component>
 
  <el-button @click="compChange">切換組件</el-button>
 
</template>
<script>
  import { ref } from 'vue'
  import Child1 from './Child1.vue'
  import Child2 from './Child2.vue'
  export default {
    components: {
      Child1,
      Child2
    },
    setup() {
      let currentComp = ref('Child1')
 
      // 切換組件
      const compChange = () => {
        if(currentComp.value == 'Child1') {
          currentComp.value = 'Child2'
        }else {
          currentComp.value = 'Child1'
        }
      }
      return {
        currentComp,
        compChange
      }
    }
  }
 
 
</script>

2. 使用setup語(yǔ)法糖,這時(shí)候的is如果使用字符串會(huì)加載不出來(lái),得使用組件實(shí)例

第一種方式

<template>
 
  <Child1 />
  <Child2 />
  <component :is="flag ? Child1 : Child2"></component>
 
  <el-button @click="flag = !flag">切換組件</el-button>
 
</template>
<script setup>
  import { ref } from 'vue'
  import Child1 from './Child1.vue'
  import Child2 from './Child2.vue'
 
  const flag = ref(true)
 
</script>

第二種方式文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-573438.html

<template>
 
  <Child1 />
  <Child2 />
  <component :is="currentComp"></component>
 
  <el-button @click="compChange">切換組件</el-button>
 
</template>
<script setup>
  import { shallowRef, ref } from 'vue'
  import Child1 from './Child1.vue'
  import Child2 from './Child2.vue'
 
  //這里用ref的話,vue給出警告Vue接收到一個(gè)組件,該組件被制成反應(yīng)對(duì)象。這可能會(huì)導(dǎo)致不必要的性能開(kāi)銷,應(yīng)該通過(guò)將組件標(biāo)記為“markRaw”或使用“shallowRef”而不是“ref”來(lái)避免。
  // 如果使用 markRaw 那么currentComp將不永遠(yuǎn)不會(huì)再成為響應(yīng)式對(duì)象。 所以得使用 shallowRef
  let currentComp = shallowRef(Child1)  
 
  // 切換組件
  const compChange = () => {
    if(currentComp.value == Child1) {
      currentComp.value = Child2
    }else {
      currentComp.value = Child1
    }
  }
 
</script>

到了這里,關(guān)于Vue3中使用component :is 加載組件的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • vue3傳屬性時(shí)報(bào)錯(cuò) [Vue warn]: Component is missing template or render function.

    vue3傳屬性時(shí)報(bào)錯(cuò) [Vue warn]: Component is missing template or render function.

    上網(wǎng)查這個(gè)問(wèn)題,解決方案很多,沒(méi)有一款適合我。。。先說(shuō)我的解決辦法,如果解決不了再往下看,我的原因是 用的子組件的ref和子組件的標(biāo)簽名一樣了: 給 ref 改個(gè)名字就好了 。。。 使用技術(shù): vue3+ts 用的props傳值,本來(lái)都好好的,后來(lái)發(fā)現(xiàn)給一個(gè)子組件傳值發(fā)生變化

    2024年02月14日
    瀏覽(16)
  • vue3+vite配置 unplugin-vue-component 找不到 Vant 組件的問(wèn)題

    vue3+vite配置 unplugin-vue-component 找不到 Vant 組件的問(wèn)題

    使用 vue3 + vite + Vant 搭建移動(dòng)端項(xiàng)目,為了避免全量引入 vant 導(dǎo)致打包體積過(guò)大,又不想一個(gè)一個(gè)組件手動(dòng)導(dǎo)入,所以就選擇了 vant 官方推薦的方法,使用 unplugin-vue-components 插件自動(dòng)引入組件,并按需引入組件的樣式。 但是運(yùn)行過(guò)程中遇到了報(bào)錯(cuò): [vite] Internal server error: F

    2024年02月16日
    瀏覽(27)
  • vue3+ts+vite項(xiàng)目引入echarts,vue3項(xiàng)目echarts組件封裝

    vue3+ts+vite項(xiàng)目引入echarts,vue3項(xiàng)目echarts組件封裝

    技術(shù)棧 :Vue3 + Ts + Vite + Echarts 簡(jiǎn)介 : 圖文詳解,教你如何在 Vue3 項(xiàng)目中 引入Echarts , 封裝Echarts組件 ,并實(shí)現(xiàn)常用Echarts圖例 1.1 靜態(tài)效果 1.2 動(dòng)態(tài)效果 2.1 安裝 Echarts npm: pnpm: 2.2 main.ts 中引入 2.3 Echarts 組件封裝 /src/components/ReEcharts/index.vue 文件中寫(xiě)入如下代碼 3.1 柱狀圖 實(shí)現(xiàn)

    2024年02月09日
    瀏覽(33)
  • Vue3 —— 在vue中動(dòng)態(tài)引入組件以及動(dòng)態(tài)引入js的方法

    Vue3 —— 在vue中動(dòng)態(tài)引入組件以及動(dòng)態(tài)引入js的方法

    文章目錄 一 、 動(dòng)態(tài)引入組件 1. 具體寫(xiě)法 二、 動(dòng)態(tài)引入js文件 1. 具體寫(xiě)法 總結(jié) 定義一個(gè)異步組件,它在運(yùn)行時(shí)是懶加載的。參數(shù)可以是一個(gè)異步加載函數(shù),或是對(duì)加載行為進(jìn)行更具體定制的一個(gè)選項(xiàng)對(duì)象。 在大型項(xiàng)目中,我們可能需要拆分應(yīng)用為更小的塊,并僅在需要時(shí)

    2024年02月12日
    瀏覽(29)
  • uni-app:vue3 + uni-app 在微信小程序中無(wú)法使用app.component全局注冊(cè)組件

    按上文中的代碼執(zhí)行后,會(huì)發(fā)現(xiàn)在微信小程序開(kāi)發(fā)中全局注冊(cè)的組件是無(wú)法顯示的,這是uniapp的一個(gè)未解決bug, 在uniapp中出了可以通過(guò)vue實(shí)例的component方法注冊(cè)全局組件外,uniapp支持另一種全局注冊(cè)的方式,就是通過(guò) easycom 掃描注冊(cè),步驟如下 easycom 的掃描流程是:通過(guò)代碼

    2024年02月16日
    瀏覽(105)
  • vue3動(dòng)態(tài)加載組件

    當(dāng) is 是字符串,它既可以是 HTML 標(biāo)簽名也可以是組件的注冊(cè)名。 或者,is 也可以直接綁定到組件的定義。 內(nèi)置組件都可以傳遞給 is,但是如果想通過(guò)名稱傳遞則必須先對(duì)其進(jìn)行注冊(cè)。 如果將組件本身傳遞給 is 而不是其名稱,則不需要注冊(cè)。 vue官方文檔-component內(nèi)置動(dòng)態(tài)組件

    2024年02月13日
    瀏覽(25)
  • VUE3+vite項(xiàng)目中動(dòng)態(tài)引入組件和異步組件

    1. 把項(xiàng)目中所有vue文件注冊(cè)成異步組件。 2. 獲取組件 在setup函數(shù)獲取組件 3. 參考如下 Glob 導(dǎo)入 Vite 支持使用特殊的 import.meta.glob 函數(shù)從文件系統(tǒng)導(dǎo)入多個(gè)模塊: 以上將會(huì)被轉(zhuǎn)譯為下面的樣子: 你可以遍歷 modules 對(duì)象的 key 值來(lái)訪問(wèn)相應(yīng)的模塊: 匹配到的文件默認(rèn)是懶加載的

    2024年02月10日
    瀏覽(34)
  • VUE3+Ts使用高德地圖組件@vuemap/vue-amap語(yǔ)法檢測(cè)Amap is not defind

    VUE3+Ts使用高德地圖組件@vuemap/vue-amap語(yǔ)法檢測(cè)Amap is not defind

    踩坑記錄:最近項(xiàng)目中用到了@vuemap/vue-amap高德地圖組件,正常配置完成后,引入官方示例,地圖正常出現(xiàn),可以正常編譯不出錯(cuò),但是代碼提示給我整了個(gè)這。 于是,開(kāi)始查資料,為什么會(huì)出現(xiàn)這個(gè)情況,然后是因?yàn)樵趍ain.js導(dǎo)入的名字VueMap和高德自己全局暴露AMap不是一碼事

    2024年02月06日
    瀏覽(24)
  • Vue動(dòng)態(tài)組件 component :is的使用

    Vue動(dòng)態(tài)組件 component :is的使用

    vue 動(dòng)態(tài)組件用于實(shí)現(xiàn)在指定位置上,動(dòng)態(tài)加載不同的組件,核心代碼為: componentTag 為自定義的變量,將需要加載的組件名賦值給它,即可在component?/標(biāo)簽出現(xiàn)的位置,渲染該組件。 src/page/component1.vue src/page/component2.vue src/page/component3.vue 點(diǎn)擊按鈕組件1 點(diǎn)擊按鈕組件2 點(diǎn)擊按

    2024年02月02日
    瀏覽(26)
  • Vue3.3 的新功能的體驗(yàn)(下):泛型組件(Generic Component) 與 defineSlots

    Vue3.3 的新功能的體驗(yàn)(下):泛型組件(Generic Component) 與 defineSlots

    上一篇說(shuō)了 DefineOptions、defineModel、Props 的響應(yīng)式解構(gòu)和從外部導(dǎo)入類型 這幾個(gè)新功能,但是沒(méi)有說(shuō)Generic、defineSlots等,這是因?yàn)檫€沒(méi)有完全搞清楚可以用在什么地方。折騰了幾天終于弄清楚了。 這還要從 TS 的泛型說(shuō)起。 泛型僅僅只是表達(dá)傳啥都行嗎?當(dāng)然不是,因?yàn)閖s原生

    2024年02月06日
    瀏覽(19)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包