ES6模块化

什么是ES6模块化

  1. node.js中如何实现模块化开发

node.js遵循CommonJS的模块化规范。主要特征是:

  1. 通过require导入模块

  2. 通过module.export导出模块

模块化的好处:
通过约定俗成的模块化规范,减少沟通成本,极大方便各个模块之间的调用。

  1. 模块化规范分类

在ES6模块化规范出来之前,民间尝试过AMD、CMD、CommonJS等模块化规范。

这些模块化规范存在一定的差异性与局限性,比如AMD、CMD更适合浏览端的模块化,而CommonJS更适合服务端的模块化

然而太多的模块化规范造成了学习和开发上的困难,于是官方统一的ES6模块化标准就诞生了!

  1. 什么是ES6模块化规范

浏览端和服务端均适用的模块化规范,极大降低了开发者的开发难度,不再需要学习AMD、CMD、CommonJS等模块化规范。

ES6模块化规范中定义:

  1. 每个js文件都是一个独立的模块。

  2. 通过import导入模块

  3. 通过export导出模块

在node.js中使用ES6规范

node.js默认仅支持CommonJS规范,想要在node.js环境下学习ES6规范,需要注意一下这些配置:

  1. node.js的版本必须在14.15.1以上

  2. 在package.json的根节点中添加”type”: “module”节点

默认导出与默认导入

  1. 默认导出

语法:export default 默认导出成员

let n1 = 10

function show() {}

export default {

n1, show

}

注意:每个模块只能导出一个default,再导出就会报错!

  1. 默认导入

语法: import 接收名称 from ‘模块标识符’

import m1 from ‘./01_m1.js’;

console.log(m1);

输出结果:

{ n1: 10, show: [Function show] }

注意: 接收名称可以随意,但是不能以数字开头。

按需导出与按需导入

  1. 按需导出

语法:export 要导出的成员

export let n1 = ‘aaa’;

export let n2 = ‘ccc’;

export function show() {};

注意:

  1. 按需导出可以多次导出
1
<!-- -->
  1. 按需导入

语法: import {导出成员名称} from ‘模块标识符’

import { n1, n2, show } from ‘./01_m2.js’;

console.log(n1); // aaa

console.log(n2); // ccc

console.log(show); // [Function: show]

注意:

  1. 导入名称必须与导出名称保持一致

  2. 导入名称可以通过as重命名

  3. 按需导入和默认导入可以一起使用

直接导入

有时候只想单纯地执行某个js文件,并不需要用到内部的成员,这是就可以通过直接import+模块标识符来解决。

02_m1.js:

for (let i = 0; i < 10; i ++) {

console.log(i);

}

02_m2.js:

import ‘./02_m1.js’; //将会输出for循环中的i值

参考:

铺垫知识-01.ES6模块化 -
什么是ES6模块化

铺垫知识-02.ES6模块化 -
在node.js中体验ES6模块化

铺垫知识-03.ES6模块化 -
默认导出与默认导入

铺垫知识-04.ES6模块化 -
默认导出与默认导入的注意事项

铺垫知识-05.ES6模块化 -
按需导入与按需导出

铺垫知识-06.ES6模块化 -
按需导出和按需导入的注意事项

铺垫知识-06.ES6模块化 -
直接导入并执行模块中的代码


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!