Vue Router组件的component导入为何不能用变量表示?

2026-04-03 00:190阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计483个文字,预计阅读时间需要2分钟。

Vue Router组件的component导入为何不能用变量表示?

在使用webpack编译ES6代码并动态引入模块时,如果遇到无法直接传递变量作为import语句的参数,例如`dir='path/to/my/file.js'; import(dir);`,而需要传递字符串`import('path/to/my/file.js')`,这是因为webpack目前无法完全实现动态导入的完全动态性。

Vue Router组件的component导入为何不能用变量表示?

简单来说,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分钟。

Vue Router组件的component导入为何不能用变量表示?

在使用webpack编译ES6代码并动态引入模块时,如果遇到无法直接传递变量作为import语句的参数,例如`dir='path/to/my/file.js'; import(dir);`,而需要传递字符串`import('path/to/my/file.js')`,这是因为webpack目前无法完全实现动态导入的完全动态性。

Vue Router组件的component导入为何不能用变量表示?

简单来说,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的值才会加载,从而实现懒加载。

阅读全文