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

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

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

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

Vite官方文檔說需要使用Glob 導(dǎo)入形式,然后看了一個Glob的文檔,解決了這個問題(親測可行)。

首先需要使用特殊的import.meta.glob函數(shù)從文件系統(tǒng)導(dǎo)入多個模塊:

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

他會匹配并導(dǎo)入所有相關(guān)的組件:

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

那么回到項目中,在home文件夾下的index.vue文件中導(dǎo)入custom_components文件夾下的所有.vue文件
vue3 動態(tài)加載組件、動態(tài)引入組件
因此,根據(jù)vite的import.meta.glob函數(shù):就可以獲得對應(yīng)的custom_components文件夾下的.vue文件

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

打印link可以看到
vue3 動態(tài)加載組件、動態(tài)引入組件
最后就是異步注冊組件

layouts.value = markRaw(defineAsyncComponent(link))

3.最后
下面貼出完整案例,僅供參考。有更好的或者需要優(yōu)化的可以提問一起探討。文章來源地址http://www.zghlxwxcb.cn/news/detail-406383.html

<template>	
	<div @click="changeComponents('kk')">顯示kk.vue</div>
	<div @click="changeComponents('index')">顯示index.vue</div>
	<component :is="layouts"/>
</template>

<script lang='ts' setup>
	const modules = import.meta.glob('../custom_components/*.vue');
	let layouts = ref<any>(null)
	const changeComponents = (e:string)=>{
		const link = modules[`../custom_components/${e}.vue`]
        layouts.value = markRaw(defineAsyncComponent(link))
	}
</script>

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

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

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

相關(guān)文章

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包