import关键字和import()函数

76 阅读1分钟

import关键字和import()函数都能导入模块,主要区别如下:

加载时机

  • import 关键字导入的内容,在编译阶段加载,编译阶段确定模块之间的依赖关系,所以 import 利于 tree shaking
  • import() 函数导入的内容,在运行时加载,这就是按需加载的原理。

声明地方

  • import 关键字只能放在模块的顶层;在浏览器中,只能在 <script type="module"></script>中使用
  • import() 函数可以放在代码逻辑的各个地方,使用更灵活

使用方式

  • import 关键字直接使用
  • import() 函数:
  1. import() 函数的参数是目标模块的文件路径
  2. import() 函数返回一个 Promise,所以它是异步的,故可用于代码分割;用 then、catch处理成功和失败
  3. then() 的回调参数 res ,其实就是其他模块A导出的所有内容;如果模块A没有导出某些变量,即使使用 import() 函数,也无法访问到;如果模块A采用默认导出,则必须使用 res.default 才能获取内容

image.png

打印.png