在vue中import()语法不能传入变量的问题及解决
作者:一年八个月
这篇文章主要介绍了在vue中import()语法不能传入变量的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
import()语法不能传入变量
解决办法
一定要用变量的时候,可以通过字符串模板来提供部分信息给webpack;
例如import(`./path/${myFile}`), 这样编译时会编译所有./path下的模块,但运行时确定myFile的值才会加载,从而实现懒加载。
import(`./path/${myFile}`),
问题
可以用
const cc = () => import('./aa.vue');
如下代码报错
let name = '@/views/aa.vue'; const cc = () => import(name);
或者
function jikj() { return './gg.js'; } const cc = () => import(jikj());
动态引入import()变量失效
import我们通常的用法是
import('@/pages/demo').then(item=>{})
但是现在有个需求必须要动态传入路径,发现传入变量后不能识别,代码如下
const modelpath = ‘@/pages/demo' import(modelpath).then(item => {})
因为webpack的现在的实现方式不能实现完全动态,所以可以通过字符串模板来提供部分信息给webpack,如下
const modelpath = ‘/demo' import(`@/pages${modelpath}`).then(item => {})
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。