我正在构建项目结构,并创建了一些模块,我需要在该模块中根据用户所在的路线进行导入。
# my folder structure
modules
-- user
-- client
-- index
# my code
// get constructor
const const constructor = await getConstructor( 'user' ); // get the constructor
// index
export const getConstructor = async ( module ) => {
const constructor = await require(`./${module}`).create; // option 1
const constructor = await import(`./${module}`).then( constructor => constructor.create ); // option 2
return constructor;
}
// module - user
const create = ( data ) => {
// behavior
// ...
}
export {
create,
delete,
otherFunctions
}
我的问题是,就性能而言,动态导入create
函数的最佳方法是什么,无论是选项1还是2,甚至还有另一种方法。
有什么建议吗?
答案 0 :(得分:1)
我认为您应该看一下es-module loader,它是管理异步导入“延迟加载”的一种方式,并且就性能而言,我认为这也是一个很好的解决方案。这导致我们选择第二种方法。
如果您使用的是Webpack,则可以看一下Code splitting这个概念。