模块化

Mr.ZhaoAbout 2 min

1. 介绍

1.1 模块化与模块

将一个复杂的程序文件依据一定规则(规范)拆分成多个文件的过程称之为 模块化

其中拆分出的每个文件就是一个模块,模块的内部数据是私有的,不过模块可以暴露内部数据以便其他模块使用

1.2 模块化项目

编码时是按照模块一个一个编码的, 整个项目就是一个模块化的项目

1.3 模块化好处

下面是模块化的一些好处:

  1. 防止命名冲突
  2. 高复用性
  3. 高维护性

2. 模块导出与导入

因为模块内的属性和函数都是私有的,如果对外使用,需要使用标准语法导出和导入才可以

2.1 CommonJS标准

导出语法:

module.exports = {
  对外属性名: 模块内私有变量
}

导入语法:

const 变量名 = require('模块名或路径')
// Node.js 环境内置模块直接写模块名(例如:fs,path,http)
// 自定义模块:写模块文件路径(例如:./utils.js)

变量名的值接收的就是目标模块导出的对象

2.2 ECMAScript标准

CommonJS 规范是 Node.js 环境中默认的,后来官方推出 ECMAScript 标准语法

2.2.1 默认导出和导入

导出语法:

export default {
  对外属性名: 模块内私有变量
}

导入语法:

import 变量名 from '模块名或路径'

变量名的值接收的就是目标模块导出的对象

注意:Node.js 默认只支持 CommonJS 标准语法,如果想要在当前项目环境下使用 ECMAScript 标准语法,请新建 package.json 文件设置type: 'module' 来进行设置

{ “type”: "module" }

2.2.2 命名导出和导入

命名导出语法:

export 修饰定义语句

命名导入语法:

import { 同名变量 } from '模块名或路径'

注意:同名变量指的是模块内导出的变量名

与默认导出如何选择:

  • 按需加载,使用命名导出和导入
  • 全部加载,使用默认导出和导入