Rumah > hujung hadapan web > View.js > teks badan

Cara untuk mencipta berbilang komponen komponen secara dinamik dalam vue3 dengan merentasi nama komponen masuk

王林
Lepaskan: 2023-05-11 19:52:04
ke hadapan
2167 orang telah melayarinya

Latar Belakang

Dalam vue3, jika anda menggunakan komponen, anda boleh memuatkan komponen secara dinamik, seperti

<!--   直接创建  -->
<component :is="Image" />
Salin selepas log masuk

Ini akan memuatkan komponen Imej yang telah ditentukan dan diimport, tetapi jika Komponen tersuai yang perlu dipaparkan diletakkan dalam tatasusunan Jika paparan dilalui, paparan tidak akan berjaya.

<!-- 动态创建方式 1 -->
<div v-for="(comp, index) in realTimeComponent" :key="index">
    <component :is="comp" />
</div>

<!-- 动态创建方式 2-->
<component  v-for="(comp, index) in realTimeComponent" :key="index" :is="comp" />
Salin selepas log masuk
rrree

Kesan paparan adalah seperti yang ditunjukkan dalam rajah:

Cara untuk mencipta berbilang komponen komponen secara dinamik dalam vue3 dengan merentasi nama komponen masuk

Penyelesaian

Selepas banyak percubaan, saya mendapati bahawa walaupun saya terpaksa gunakan komponen induk bagi komponen yang dicipta secara dinamik Subkomponen telah diimport dan didaftarkan secara dinamik, tetapi Komponen yang dilalui tidak boleh dipaparkan.

Punca masalah:

Semasa traversal, komponen yang diimport dan didaftarkan dalam komponen semasa tidak boleh dikenali, dan ia akan dianggap bahawa komponen tidak didaftarkan, sekali gus memaparkan <image></image>
Walau bagaimanapun, ia terus Gunakan <component :is="Image" /> untuk mendaftarkan komponen ini pada halaman ini dan ia boleh dikenali.
Penyelesaian:

Gunakan app.component untuk mendaftarkan komponen secara global, yang akan berkuat kuasa apabila menggelung untuk mencipta berbilang komponen.
Kaedah penciptaan global:

<script setup>
import { ref } from "Vue";
import Image from "@/customComponents/Image.vue";
const realTimeComponent = ref(["Image"]);
</script>
或者
<script>
import { ref } from "Vue";
import Image from "@/customComponents/Image.vue";
export default {
        components: {
            Image,
        },
         setup(){
            const realTimeComponent = ref(["Image"]);
         }
}
</script>
Salin selepas log masuk

Atas ialah kandungan terperinci Cara untuk mencipta berbilang komponen komponen secara dinamik dalam vue3 dengan merentasi nama komponen masuk. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan