import.meta.glob
是 Vite 提供的一个特殊功能,它允许你在模块范围内动态地导入多个模块。这在处理大量的文件,如组件、页面或其他模块时特别有用,特别是当你需要根据某些条件或模式来动态加载它们时。
1.创建需要动态导入的组件目录
假设你有一个src/pages/DynamicComponents目录,里面包含多个 Vue 组件,你想根据某些条件动态地导入这些组件。
首先,确保你的目录结构是这样的:
src/pages/index.vue文件
<template>
<div class="DynamicComponentsOutbox">
<h1>DynamicComponents</h1>
</div>
<div>
<component v-for="(component, name) in dynamicComponents" :key="name" :is="component" />
</div>
</template>
<script setup>
import { onMounted, reactive,markRaw } from 'vue'
const dynamicComponents = reactive({})
onMounted(async () => {
const modules = import.meta.glob('./DynamicComponents/*.vue');
for (const pat