vite&vue3中使用批量导入 import.meta.glob import.meta.globEager
vite glob-import 官方文档1.引入库以 Vuex4+ 批量导入store模块为例假设有如下目录结构代码:import { createStore } from 'vuex'导入模块const files = import.meta.glob('./module/*.js')或者const files = import.meta.globEager('./module/*.js')注
·
vite glob-import 官方文档
1.引入库
以 Vuex4+ 批量导入store模块为例
假设有如下目录结构
代码:
import { createStore } from 'vuex'
导入模块
const files = import.meta.glob('./module/*.js')
或者
const files = import.meta.globEager('./module/*.js')
注意,路径需为以 ./ 开头)或绝对路径(以 / 开头,相对于项目根目录解析
import.meta.glob 为过动态导入,构建时,会分离为独立的 chunk
import.meta.globEager 为直接引入
两者在使用上也有不同的区别
1.
const modules = {}
for (const key in files) {
files[key]().then(res=>{
modules[key.replace(/(\.\/module\/|\.js)/g, '')] = res.default
})
}
Object.keys(modules).forEach(item => {
modules[item]['namespaced'] = true
})
export default createStore({
modules,
})
2.
const modules = {}
for (const key in files) {
modules[key.replace(/(\.\/module\/|\.js)/g, '')] = files[key].default
}
Object.keys(modules).forEach(item => {
modules[item]['namespaced'] = true
})
export default createStore({
modules,
})
如果使用异步导入的方式,会导致一些需要被首先应用的数据无法被获取到,可以根据实际需求,选择不同的导入方式
总结
1.引用createStore
2.import.meta.glob 或 import.meta.globEager 导入需要导入的文件,注意路径匹配
3.遍历files,根据导入方式做不同的处理
4.方法不限于vuex的模块导入,这里只是简单的例子
更多推荐
已为社区贡献1条内容
所有评论(0)