import语句中的变量

时间:2018-02-07 13:01:38

标签: javascript import vuejs2

是否可以执行类似

的操作
import Vue from '../vendor/vue';
    import slides from '../data/'+$root.name'+.json'; 

    Vue.component('mycomponent', {

1 个答案:

答案 0 :(得分:1)

不,不幸的是,import语句必须使用静态名称。

有人建议添加动态module()函数,该函数将动态加载:https://github.com/tc39/proposal-dynamic-import

建议的语法是:

import('./' + dynamicFileName + '.js')
.then(module => {
    // use module
})
.catch(err => {
    // handle error
});

它看起来是活跃的:https://github.com/tc39/proposals

这里看起来有一个polyfill:https://github.com/ModuleLoader/es-module-loader

另一个问题是你无法直接将json导入JavaScript。以下方法可能就是您所追求的目标:

幻灯片文件:

export const slides = [
    { ... }
];

然后使用静态模块路径或动态导入polyfill导入文件。