ES6模块化
什么是ES6模块化
- node.js中如何实现模块化开发
node.js遵循CommonJS的模块化规范。主要特征是:
通过require导入模块
通过module.export导出模块
模块化的好处:
通过约定俗成的模块化规范,减少沟通成本,极大方便各个模块之间的调用。
- 模块化规范分类
在ES6模块化规范出来之前,民间尝试过AMD、CMD、CommonJS等模块化规范。
这些模块化规范存在一定的差异性与局限性,比如AMD、CMD更适合浏览端的模块化,而CommonJS更适合服务端的模块化
然而太多的模块化规范造成了学习和开发上的困难,于是官方统一的ES6模块化标准就诞生了!
- 什么是ES6模块化规范
浏览端和服务端均适用的模块化规范,极大降低了开发者的开发难度,不再需要学习AMD、CMD、CommonJS等模块化规范。
ES6模块化规范中定义:
每个js文件都是一个独立的模块。
通过import导入模块
通过export导出模块
在node.js中使用ES6规范
node.js默认仅支持CommonJS规范,想要在node.js环境下学习ES6规范,需要注意一下这些配置:
node.js的版本必须在14.15.1以上
在package.json的根节点中添加”type”: “module”节点
默认导出与默认导入
- 默认导出
语法:export default 默认导出成员
let n1 = 10
function show() {}
export default {
n1, show
}
注意:每个模块只能导出一个default,再导出就会报错!
- 默认导入
语法: import 接收名称 from ‘模块标识符’
import m1 from ‘./01_m1.js’;
console.log(m1);
输出结果:
{ n1: 10, show: [Function show] }
注意: 接收名称可以随意,但是不能以数字开头。
按需导出与按需导入
- 按需导出
语法:export 要导出的成员
export let n1 = ‘aaa’;
export let n2 = ‘ccc’;
export function show() {};
注意:
- 按需导出可以多次导出
1 |
|
- 按需导入
语法: import {导出成员名称} from ‘模块标识符’
import { n1, n2, show } from ‘./01_m2.js’;
console.log(n1); // aaa
console.log(n2); // ccc
console.log(show); // [Function: show]
注意:
导入名称必须与导出名称保持一致
导入名称可以通过as重命名
按需导入和默认导入可以一起使用
直接导入
有时候只想单纯地执行某个js文件,并不需要用到内部的成员,这是就可以通过直接import+模块标识符来解决。
02_m1.js:
for (let i = 0; i < 10; i ++) {
console.log(i);
}
02_m2.js:
import ‘./02_m1.js’; //将会输出for循环中的i值
参考:
铺垫知识-02.ES6模块化 -
在node.js中体验ES6模块化
铺垫知识-04.ES6模块化 -
默认导出与默认导入的注意事项
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!