Vue Router组件的component导入为何不能用变量表示?
- 内容介绍
- 文章标签
- 相关推荐
本文共计483个文字,预计阅读时间需要2分钟。
在使用webpack编译ES6代码并动态引入模块时,如果遇到无法直接传递变量作为import语句的参数,例如`dir='path/to/my/file.js'; import(dir);`,而需要传递字符串`import('path/to/my/file.js')`,这是因为webpack目前无法完全实现动态导入的完全动态性。
简单来说,webpack在处理动态导入时,需要知道导入的模块路径是静态的,以便正确地处理模块的加载和缓存。因此,为了解决这个问题,需要将变量转换为字符串形式,如下所示:
javascriptlet dir='path/to/my/file.js';import(`${dir}`);
webpack 编译es6 动态引入 import() 时不能传入变量,例如dir ='path/to/my/file.js' ; import(dir) , 而要传入字符串 import(‘path/to/my/file.js'),这是因为webpack的现在的实现方式不能实现完全动态。
但一定要用变量的时候,可以通过字符串模板来提供部分信息给webpack;例如import(./path/${myFile}), 这样编译时会编译所有./path下的模块,但运行时确定myFile的值才会加载,从而实现懒加载。
本文共计483个文字,预计阅读时间需要2分钟。
在使用webpack编译ES6代码并动态引入模块时,如果遇到无法直接传递变量作为import语句的参数,例如`dir='path/to/my/file.js'; import(dir);`,而需要传递字符串`import('path/to/my/file.js')`,这是因为webpack目前无法完全实现动态导入的完全动态性。
简单来说,webpack在处理动态导入时,需要知道导入的模块路径是静态的,以便正确地处理模块的加载和缓存。因此,为了解决这个问题,需要将变量转换为字符串形式,如下所示:
javascriptlet dir='path/to/my/file.js';import(`${dir}`);
webpack 编译es6 动态引入 import() 时不能传入变量,例如dir ='path/to/my/file.js' ; import(dir) , 而要传入字符串 import(‘path/to/my/file.js'),这是因为webpack的现在的实现方式不能实现完全动态。
但一定要用变量的时候,可以通过字符串模板来提供部分信息给webpack;例如import(./path/${myFile}), 这样编译时会编译所有./path下的模块,但运行时确定myFile的值才会加载,从而实现懒加载。

