vue使用import.meta.glob動態(tài)導(dǎo)入多個模塊方式
import.meta.glob 是 Vite 提供的一個功能,用于在構(gòu)建時動態(tài)導(dǎo)入多個模塊。
它通過 glob 模式匹配文件,返回一個對象,鍵為文件路徑,值為返回 Promise 的動態(tài)導(dǎo)入函數(shù)。
語法與參數(shù)
const modules = import.meta.glob(globPattern, options);
- globPattern:
字符串或字符串?dāng)?shù)組,支持 glob 模式(如 './modules/*.js')。
options(可選):
eager:若為true,直接導(dǎo)入模塊而非返回 Promise(默認(rèn)false)。as:指定導(dǎo)入方式,如'raw'(原始字符串)或'url'(文件 URL)。
使用示例
動態(tài)導(dǎo)入文件
匹配 src/features 下所有 .js 文件,按需加載:
const features = import.meta.glob('./src/features/*.js');
for (const path in features) {
features[path]().then((module) => {
console.log(module.default);
});
}
直接導(dǎo)入(eager 模式)
靜態(tài)加載所有匹配模塊:
const modules = import.meta.glob('./lib/*.js', { eager: true });
console.log(modules['./lib/utils.js'].default);
導(dǎo)入為原始內(nèi)容
獲取文件原始字符串或 URL:
const rawFiles = import.meta.glob('./assets/*.txt', { as: 'raw' });
const fileUrls = import.meta.glob('./images/*.png', { as: 'url' });
注意事項
- 僅適用于 Vite 或 Rollup 項目,需在構(gòu)建時確定模塊路徑。
- 動態(tài)導(dǎo)入的模塊會代碼分割,生成獨(dú)立 chunk。
- 路徑需相對于當(dāng)前文件,且需包含擴(kuò)展名(如
.js)。
與import.meta.globEager的區(qū)別
Vite 4 已棄用 globEager,推薦使用 { eager: true } 選項替代。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- vue前端動態(tài)導(dǎo)入文件之import.meta.glob導(dǎo)入圖片詳細(xì)過程
- vite5+vue3+?import.meta.glob動態(tài)導(dǎo)入vue組件圖文教程
- 在vue3中使用import.meta.env
- vue3+vite中使用import.meta.glob的操作代碼
- 在導(dǎo)入.vue文件的時候,ts報錯提示:找不到模塊“@/Layout/index.vue”或其相應(yīng)的類型聲明問題
- vue如何在vue.config.js文件中導(dǎo)入模塊
- Vue中JSON文件神奇應(yīng)用fetch、axios異步加載與模塊導(dǎo)入全指南詳細(xì)教程
相關(guān)文章
vue elementUI 表單校驗的實(shí)現(xiàn)代碼(多層嵌套)
這篇文章主要介紹了vue elementUI 表單校驗的實(shí)現(xiàn)代碼(多層嵌套),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
使用vite構(gòu)建vue3項目的實(shí)現(xiàn)步驟
通過本文,您可以了解如何使用Vue CLI創(chuàng)建Vue 3項目,配置Vite,利用其優(yōu)勢進(jìn)行開發(fā),具有一定的參考價值,感興趣的可以了解一下2023-08-08
vue3中如何通過ref和$parent結(jié)合defineExpose實(shí)現(xiàn)父子組件之間的通信
這篇文章主要介紹了vue3中通過ref和$parent結(jié)合defineExpose實(shí)現(xiàn)父子組件之間的通信,Vue3中通過ref和$parent的結(jié)合使用,及defineExpose的方法,可以非常便捷地實(shí)現(xiàn)父子組件之間的通信,需要的朋友可以參考下2023-07-07
element?實(shí)現(xiàn)導(dǎo)航欄收起展開功能及思路
這篇文章主要介紹了element?實(shí)現(xiàn)導(dǎo)航欄收起展開功能,實(shí)現(xiàn)思路先給 el-menu加上 :collapse="isCollapse" 屬性,這個屬性也是 element 上的一個參數(shù),意思為是否開啟折疊動畫,在 data 中定義 isCollapse ,用 true 和 false 控制展開與收起,需要的朋友可以參考下2023-01-01

