最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何解決Vue3組合式API模式下動(dòng)態(tài)組件不渲染問題

 更新時(shí)間:2024年03月15日 10:03:57   作者:cppandtea  
這篇文章主要介紹了如何解決Vue3組合式API模式下動(dòng)態(tài)組件不渲染問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教<BR>

Vue3可以使用component組件渲染動(dòng)態(tài)組件,將子組件名傳遞給:is指令就可以了。

官方在文檔中指出,傳遞到:is指令的值可以是:

(1)被注冊(cè)的組件名

(2)導(dǎo)入的組件對(duì)象

假設(shè)有以下需求,有以下兩個(gè)子組件,在父組件中需要根據(jù)其他條件動(dòng)態(tài)加載:

<template>
  <h3>我是動(dòng)態(tài)子組件A</h3>
</template>
<style scoped>
h3 {
  background-color: blue;
  color: #fff;
}
</style>

<template>
  <h3>我是動(dòng)態(tài)子組件B</h3>
</template>
<style scoped>
h3 {
  background-color: blueviolet;
  color: #fff;
}
</style>

1. 將動(dòng)態(tài)組件對(duì)象直接賦值給:is

在Vue3組合式API模式下,用component組件渲染動(dòng)態(tài)組件,如果將動(dòng)態(tài)組件對(duì)象直接賦值給:is指令是沒有問題的。

例如以下代碼: 

模板代碼

<template>
  <div>
    <h3>組合API模式下動(dòng)態(tài)組件的加載</h3>
    <component :is="CompA" />
    <component :is="CompB" />
  </div>
</template>

<script setup lang="ts">
import CompA from "./CompA.vue";
</script>

TS代碼

<script lang="ts" setup>
<script setup lang="ts">
import CompA from "./CompA.vue";
import CompB from "./CompB.vue";
</script>

</script>

效果如下,是沒有問題的:

2. 通過動(dòng)態(tài)組件名的方式賦值給:is無法實(shí)現(xiàn)

假若需要根據(jù)不同情況賦予:is指令不同的子組件,那么就需要用一個(gè)變量來存子組件名稱。

在組合api模式下,子組件是無法渲染的。

因?yàn)閏omponent組件的:is指令需要已注冊(cè)的組件對(duì)象。

請(qǐng)看如下代碼:

<template>
  <div>
    <h3>組合API模式下使用動(dòng)態(tài)組件名加載子組件</h3>
    <template v-for="comp in compArr" :key="comp.compName">
      <component :is="comp.compName" />
    </template>
  </div>
</template>
<script setup lang="ts">
import CompA from "./CompA.vue";
import CompB from "./CompB.vue";
const compArr = [{ compName: "CompA" }, { compName: "CompB" }];
</script>

以上代碼會(huì)引起錯(cuò)誤提示:兩個(gè)導(dǎo)入的子組件未使用:

而且在組合式API模式下,是不能顯式注冊(cè)子組件的,兩個(gè)子組件也并沒有按我們的預(yù)期渲染出來:

如何解決這個(gè)問題呢?

3. 使用組合式和選項(xiàng)式API結(jié)合的方式解決這個(gè)問題

在組合式API模式下,Vue是支持多個(gè)Script代碼塊的。

由于選項(xiàng)式API可以顯式注冊(cè)導(dǎo)入的子組件,可以另外寫一個(gè)選項(xiàng)式API模式的script來顯式注冊(cè)子組件。

這樣在component組件中,傳入已注冊(cè)子組件的名稱即可。

代碼如下:

// 專門定義一個(gè)選項(xiàng)式api模塊,來注冊(cè)組件
<script lang="ts">
import { defineComponent } from "vue";
import CompA from "./CompA.vue";
import CompB from "./CompB.vue";
export default defineComponent({
  components: { CompA, CompB }
});
</script>

<script setup lang="ts">
const compArr = [{ compName: "CompA" }, { compName: "CompB" }];
</script>

兩個(gè)子組件已經(jīng)成功渲染了。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue.js+express利用切片實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳

    Vue.js+express利用切片實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳

    斷點(diǎn)續(xù)傳就是要從文件已經(jīng)下載的地方開始繼續(xù)下載,本文主要介紹了Vue.js+express利用切片實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳,具有一定的參考價(jià)值,感興趣的可以了解下
    2023-05-05
  • vue基礎(chǔ)之模板和過濾器用法實(shí)例分析

    vue基礎(chǔ)之模板和過濾器用法實(shí)例分析

    這篇文章主要介紹了vue基礎(chǔ)之模板和過濾器用法,結(jié)合實(shí)例形式分析了vue模板與過濾器的功能、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-03-03
  • this.$router.push攜帶參數(shù)跳轉(zhuǎn)頁面的實(shí)現(xiàn)代碼

    this.$router.push攜帶參數(shù)跳轉(zhuǎn)頁面的實(shí)現(xiàn)代碼

    這篇文章主要介紹了this.$router.push攜帶參數(shù)跳轉(zhuǎn)頁面,this.$router.push進(jìn)行頁面跳轉(zhuǎn)時(shí),攜帶參數(shù)有params和query兩種方式,本文結(jié)合實(shí)例代碼給大家詳細(xì)講解,需要的朋友可以參考下
    2023-04-04
  • 使用github部署前端vue項(xiàng)目

    使用github部署前端vue項(xiàng)目

    這篇文章主要為大家介紹了使用github部署前端vue項(xiàng)目過程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • vue實(shí)現(xiàn)一個(gè)6個(gè)輸入框的驗(yàn)證碼輸入組件功能的實(shí)例代碼

    vue實(shí)現(xiàn)一個(gè)6個(gè)輸入框的驗(yàn)證碼輸入組件功能的實(shí)例代碼

    這篇文章主要介紹了vue實(shí)現(xiàn)一個(gè)6個(gè)輸入框的驗(yàn)證碼輸入組件功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • vue2.0使用md-edit編輯器的過程

    vue2.0使用md-edit編輯器的過程

    這篇文章主要介紹了vue2.0+使用md-edit編輯器的解決方案,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-02-02
  • Vue中的計(jì)算屬性computed傳參方式

    Vue中的計(jì)算屬性computed傳參方式

    這篇文章主要介紹了Vue中的計(jì)算屬性computed傳參方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • vue開發(fā)中的base和publicPath的區(qū)別

    vue開發(fā)中的base和publicPath的區(qū)別

    本文主要介紹了vue開發(fā)中的base和publicPath的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • 基于vue打包后字體和圖片資源失效問題的解決方法

    基于vue打包后字體和圖片資源失效問題的解決方法

    下面小編就為大家分享一篇基于vue打包后字體和圖片資源失效問題的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • 詳解Element-UI中上傳的文件前端處理

    詳解Element-UI中上傳的文件前端處理

    這篇文章主要介紹了詳解Element-UI中上傳的文件前端處理,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08

最新評(píng)論

康平县| 佳木斯市| 江西省| 江口县| 武强县| 克山县| 辽源市| 东乌| 大城县| 玛沁县| 汉川市| 宿松县| 从江县| 利川市| 社会| 镇康县| 长治县| 读书| 汝阳县| 江川县| 辽阳县| 刚察县| 龙陵县| 饶阳县| 达州市| 沅江市| 临安市| 敦化市| 漳州市| 泽库县| 宁夏| 鸡西市| 泰宁县| 敦煌市| 陈巴尔虎旗| 临安市| 杭州市| 南华县| 梁平县| 准格尔旗| 原平市|