ES6模块化
ES6模块化
1. 回顾:node.js 中如何实现模块化
CommonJS
规范:
- 导入:require();
- 导出:module.exports 对象
2. 前端模块化规范分类
ES6模块化规范诞生前:
- AMD和CMD适用于浏览器端;
- CommonJS适用于服务器端;
ES6模块化规范,统一浏览器端和服务器端JavaScript模块化规范;
3. ES6模块化规范定义
- 每个js文件都是一个独立的模块
- 导入:import
- 导出:export
4. 在node.js中体验ES6模块化
node.js 默认仅支持 CommonJS模块化规范,学习ES6模块化语法,需:
- 确保安装了v14.15.1+版本的node.js
- 在 package.json 的根节点添加 “type”:”module”
5. ES6模块化的基本语法
- 默认导出和默认导入
- 按需导出与按需导入
- 直接导入并执行模块中的代码
5.1默认导出、导入
- 导出
1 | // export_study.js |
- 导入
1 | // import_study.js |
- 注意事项
- 每个模块中,只允许使用一次
export default
,否则报错;
- 每个模块中,只允许使用一次
5.2 按需导出、导入
- 导出
1 | // export_study.js |
导入
语法: import {s1} from ‘模块标识符’
1 | import { rm, sj, say} from "./export_test.js" |
注意事项
每个模块可以使用多次按需导出;
按需导入的成员名称必须和按需导出的名称保持一致;
按需导入可以使用 as关键字重命名;
按需导入可以和默认导入一起使用(逗号隔开);
1
2
3
4
5
6import obj2, { rm as dream, sj, say} from "./export_test.js"
console.log(dream);//zhongrumeng
console.log(sj);//songjie
console.log(say);//[Function: say]
console.log(obj2);// { n: 10, show: [Function: show] }
5.3 直接导入并执行模块中的代码
如果只想单纯地执行某个模块中的代码,并不需要得到模块中向外共享的成员。此时,可以直接导入并执行模块代码。
1 | // 03.直接运行模块中的代码.js |
1 | // test.js |