首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >循环Javascript导入以加载到VuexORM中

循环Javascript导入以加载到VuexORM中
EN

Stack Overflow用户
提问于 2021-04-09 00:48:03
回答 1查看 31关注 0票数 0

每当我有一长串项目要导入到javascript中时,我的本意是将这些项目导出到一个单独的文件中,在我的主javascript文件中需要该文件,然后如果需要将它们加载到Vue或其他进程中,则循环它们并动态加载它们。

我刚刚开始使用VueORM,需要像这样将模型加载到VueORM实例中:

代码语言:javascript
运行
复制
import Foo from '@/models/foo'
import Bar from '@/models/bar'

database.register(Foo)
database.register(Bar)

我的应用程序将有几十个模型,所以我想从我提到的单个文件中导出这些模型,然后循环它们并注册它们。

代码语言:javascript
运行
复制
// main.js


import * as models from '@/models'

Object.keys(models).forEach(key => {
    database.register(model[key])
})

在我的模型中,我将每个导出为一个函数,如下所示:

代码语言:javascript
运行
复制
// models/index.js


export const Foo = () => import('@models/foo')
export const Bar = () => import('@models/bar')

这通常可以很好地工作,但在VuexORM中模型不会被加载。

有人能建议一个更好的方法来从一个单独的文件加载这些模型吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-17 07:37:52

Vuex ORM不处理动态导入。而不是将它们作为动态导入导出,只需使用普通的ESM语法导出它们?

下面假设您的模型是默认导出。

代码语言:javascript
运行
复制
// models/index.js

export { default as Foo } from '@/models/foo'
export { default as Bar } from '@/models/bar'

随后,您的main.js可以聚合模块:

代码语言:javascript
运行
复制
// main.js

import * as models from '@/models'

Object.values(models).forEach(model => database.register(model))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67008457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档