每当我有一长串项目要导入到javascript中时,我的本意是将这些项目导出到一个单独的文件中,在我的主javascript文件中需要该文件,然后如果需要将它们加载到Vue或其他进程中,则循环它们并动态加载它们。
我刚刚开始使用VueORM,需要像这样将模型加载到VueORM实例中:
import Foo from '@/models/foo'
import Bar from '@/models/bar'
database.register(Foo)
database.register(Bar)我的应用程序将有几十个模型,所以我想从我提到的单个文件中导出这些模型,然后循环它们并注册它们。
// main.js
import * as models from '@/models'
Object.keys(models).forEach(key => {
database.register(model[key])
})在我的模型中,我将每个导出为一个函数,如下所示:
// models/index.js
export const Foo = () => import('@models/foo')
export const Bar = () => import('@models/bar')这通常可以很好地工作,但在VuexORM中模型不会被加载。
有人能建议一个更好的方法来从一个单独的文件加载这些模型吗?
发布于 2021-05-17 07:37:52
Vuex ORM不处理动态导入。而不是将它们作为动态导入导出,只需使用普通的ESM语法导出它们?
下面假设您的模型是默认导出。
// models/index.js
export { default as Foo } from '@/models/foo'
export { default as Bar } from '@/models/bar'随后,您的main.js可以聚合模块:
// main.js
import * as models from '@/models'
Object.values(models).forEach(model => database.register(model))https://stackoverflow.com/questions/67008457
复制相似问题