【笔记】通过ESModule规范实现JS模块化
前言
通过ESModule规范实现JS模块化
导出模块
- 导出时指定的不是对象,只是结构看起来像一个对象
- 默认使用严格模式(
usr strict)
先定义再导出
1 | const obj = {}; |
导出时指定别名
1 | const obj = {}; |
定义时直接导出
1 | export const obj = {}; |
导入模块
- 导入时必须指定文件扩展名
- 必须通过WebServer访问,而不能直接通过本地文件访问,否则会报跨域错误
1 | import * as demo from "./demo.js"; |
1 | import { obj } from "./demo.js"; |
导入时指定别名
1 | import { obj as o } from "./demo.js"; |
按需导入
import()函数可以在代码内使用而不只是代码头部
1 | import("./demo.js").then(function (demo) { |
在HTML中使用模块
1 | <script src="demo.js" type="module"></script> |
1 | <script src="demo.js" type="module"> |
默认导出和导入
导出
- 一个模块只能定义一个默认导出
1 | const obj = {}; |
导入
- 导入时可以指定任意别名
1 | import o from "./demo.js"; |
导入全部并立即导出全部
1 | export * from "./demo.js"; |
查看导入元数据
1 | console.log(import.meta); |