Vue CLI 从项目模块动态导入

Vue CLI dynamic import from project module

我知道可以像这样从捆绑的 webpack 文件中导入组件

import {componentA, componentB} from '../component.bundle';

是否可以实现与动态导入相同的效果,像这样。

const url = '${window.location.origin}/assets/default/js/bundle/vue_data.bundle.js';
        this.getAxiosInstance().get(url).then(response => {
                const {Add, Edit, Filter, View} =  () => import(response.data);
        });

如果是,请问如何?谢谢

是,使用 dynamic imports:

To dynamically import a module, the import keyword may be called as a function. When used this way, it returns a promise.

我从您的 url 示例中假设您的导入位于项目的 assets 目录中(即 src > assets),而不是实际在外部域中。在这种情况下,您不需要 axios。你会这样做:

const path = 'assets/default/js/bundle/vue_data.bundle.js';
import('@/' + path).then(module => {
  const {Add, Edit, Filter, View} = module;
});

您需要对 @/ 部分进行硬编码,否则会出现问题,例如如果你试图用 const path = '@/assets/default/js/bundle/vue_data.bundle.js'

import(path)