模块化
背景
- 在es6提出模块化之前,社区提出了 CommonJS 和 AMD , CommonJS 对应服务器端, AMD 对应客户端。
区别
- es提出的module 是在 编译时(静态)执行
- CommonJS 和 AMD 是在运行时(动态)执行
- module 会更好,运行的时候会更快
语法
- 导出的方式有:
- export
- export default
两者的区别是:
export 可以导出单个,也可以导出列表
一个文件只能使用一次 export default
export default 只能导出一个变量或一个函数, 优点是可以随意命名
二者的相同点:
都能导出变量、函数、模块、文件
const name = "测试"; function request () { ..... } export default request; // 默认导出 (一个文件中,只能出现一次) export { request, name }; //导出列表 export let like = "吃喝玩乐"; // 导出单个 export function likeFn () { // 导出单个 console.log(like); }
- 导入的方式:
- import
- 后面直接加变量的,是对应 export default 的形式
- 后面加对象的, 是对应 export 的形式
import req from './request.js'; // export default 的导出形式 import { request as req } from './request.js'; // export 的导出形式 import from './util.js'; // 虽然没有导入任何变量,但是 util.js 中的会运行
"as" 可以 对 “导出” 和 “导入” 的变量进行重命名。