ES6模块化,前端工程的核心!

一、什么是模块化?为什么要模块化?

概念:
        模块化把一个复杂的程序板块划分成多个小模块,每一个小模块实现某一特定的功能,目的是为了降低耦合度,提高复用率。
模块化的好处:

  1. 代码可读性高
  2. 便于维护
  3. 方便各模块间组合复用
  4. 有利于多人共同维护一个项目
  5. 可进行单元测试
二、ES6中的模块化
1.背景

     在 ES6 之前,社区制定了一些模块加载方案,最主要的有 CommonJS 和 AMD 两种。前者用于服务器,后者用于浏览器。ES6 在语言标准的层面上,实现了模块功能,而且实现得相当简单,完全可以取代 CommonJS 和 AMD 规范,成为浏览器和服务器通用的模块解决方案。

2.开始:
三、代码演示
准备

在演示模块化之前,先把咱们的nodejs环境装上
方法:
1.右键选择一个文件夹,在终端中打开
在这里插入图片描述
2.输入命令 npm init -y 进行node初始化
![在这里插入图片描述](https://img-blog.csdnimg.cn/98a5c012fba744f7a8e30200eb2210cd.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5aSa57Gz5bC85YWL6aKG5Li7,size_17,color_FFFFFF,t_70,g_se,x_16
3.这时候你就会发现自己的文件夹目录下多了个package.json文件,打开package.json文件,在’main’的下面添加代码"type": "module",
在这里插入图片描述

开始

然后我们就可以演示我们的模块化过程了

1.首先创建两个模块:
一个小模块:outer.js用于导出给大模块使用
一个大模块:enter.js放主要代码的地方,用于接收小模块的导出。
2.在小模块outer.js中用export 关键字将需要导出的 变量、对象、函数等导出
3.在大模块enter.js中用import关键字将需要的模块内容导入

在这里插入图片描述

在这里插入图片描述
输出结果:
在这里插入图片描述
     说明模块导出和模块引入是成功的!这只是最简单的方式,后面还有多种其它的引入方式,不过理解了最简单的方式后面的也就不难理解了。

四、其它引入方式

导出:export

var firstName = 'goudan';
var lastName = 'wang';
var strA = 'aaaa'
var df = "只要import,都有我"

1.单属性导出,必须完整写 var key = value

export var a = "单属性"  

2.列表导出

export { firstName, lastName };

3.重命名导出, import的时候就是 import {sA}而不是{strA}了

export { strA as sA}; 

4.默认导出 一个模块只能有一个默认导出,不能使用 var、let 或 const 用于导出默认值 export default。

export default {
   df
}

导入import:
1.导入整个模块内容

import * as obj1 from './outer.js'	

2.导入多个接口

import {firstName,lastName} from './outer.js'	

3.重命名导入

import {firstName as name} from './outer.js'	

4.运行整个模块而不导入任何值

import './outer.js';			

5.导入使用export default导出的模块

import myDefault from './outer';		
五、ES6扩展

ES6模块中的值属于【动态只读引用】。
     对于只读来说,即不允许修改引入变量的值,import的变量是只读的,不论是基本数据类型还是复杂数据类型。
     当模块遇到import命令时,就会生成一个只读引用。等到脚本真正执行时,再根据这个只读引用,到被加载的那个模块里面去取值。
     对于动态来说,原始值发生变化,import加载的值也会发生变化。不论是基本数据类型还是复杂数据类型。
     编译时输出接口。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐