Rumah  >  Artikel  >  hujung hadapan web  >  Cara menggunakan vue3 memuatkan komponen secara dinamik dan komponen memperkenalkan secara dinamik

Cara menggunakan vue3 memuatkan komponen secara dinamik dan komponen memperkenalkan secara dinamik

王林
王林ke hadapan
2023-05-11 12:01:143434semak imbas

1. Masalah

Apabila mengerjakan projek vite yang dibina dengan vue3, halaman .vue ditarik dan diimport secara dinamik, dan kemudian konsol terus menunjukkan gesaan berikut dan halaman tidak boleh diberikan.

Cara menggunakan vue3 memuatkan komponen secara dinamik dan komponen memperkenalkan secara dinamik

2. Analisis

Menurut mesej ralat di atas, mari kita pasang dan gunakan: @rollup/plugin-dynamic-import-vars pemalam ini (tiada penyelesaian sedemikian pada akhirnya).

Dokumen rasmi Vite mengatakan bahawa perlu menggunakan borang import Glob, dan kemudian saya membaca dokumen Glob dan menyelesaikan masalah ini (ujian peribadi boleh dilaksanakan).

Mula-mula anda perlu mengimport berbilang modul daripada sistem fail menggunakan fungsi import.meta.glob khas:

const modules = import.meta.glob('../views/*/*.vue');

yang akan memadankan dan mengimport semua komponen yang berkaitan:

// vite 生成的代码
const modules = {
  './views/foo.vue': () => import('./views/foo.vue'),
  './views/bar.vue': () => import('./views/bar.vue')
}

Kemudian pergi kembali Dalam projek, import semua fail home di bawah folder index.vue ke dalam fail custom_components di bawah folder .vue

Cara menggunakan vue3 memuatkan komponen secara dinamik dan komponen memperkenalkan secara dinamik

Oleh itu, menurut vite's import.meta.globFungsi: Anda boleh mendapatkan fail custom_components dalam folder .vue yang sepadan

const changeComponents = (e:string)=>{
	const link = modules[`../custom_components/${e}.vue`]
	console.log(link,'link')
}

cetak link dan anda boleh melihat

Cara menggunakan vue3 memuatkan komponen secara dinamik dan komponen memperkenalkan secara dinamik

akhirnya Ia adalah komponen pendaftaran tak segerak

layouts.value = markRaw(defineAsyncComponent(link))

3 Akhirnya

kes lengkap disiarkan di bawah untuk rujukan sahaja. Jika ada yang lebih baik atau memerlukan pengoptimuman, anda boleh bertanya soalan dan membincangkannya bersama-sama.

rreeee

Atas ialah kandungan terperinci Cara menggunakan vue3 memuatkan komponen secara dinamik dan komponen memperkenalkan secara dinamik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam