回顾一下Es6模块化总结

166 阅读2分钟

es6模块化

es6之前:

  • amd规范
  • cmd规范

es6之后:

  • es6模块化
    • 每个 js 文件都是一个独立的模块
    • 导入其它模块使用 import 关键字
    • 向外共享模块使用 export 关键字
  • commonJS规范(nodejs)
    • 导入其它模块使用 require关键字
    • 向外共享模块使用 module.exports关键字

    让node,js支持Es6模块

    node.js中默认支持commonJs模块规范,如果想基于node,js体验与学习es6模块,需要按照如下两个步骤进行配置 确保按照了v13.0或更高的版本的node。js

image.png

注意:配置之后,则只能使用es6模块欧化语法,不能在使用后commonJs语法了

基本的文件结构

根目录
├── index.js              # 主页需要用到的js代码
└── tool.js               # 为整个项目提供公共方法

运行代码:node index.js

es6模块的内容

morning导入导出

默认导出的语法: export default 默认的导出的成员 默认导入的语法 inmport接受名称from "模块路径"

//默认导出
export default{
> > name:'小齐',
age:18
}

注意 1每个模块中,只允许使用位移的一次export default 2默认导入时的接收名称任意名称,只要是合法的成员名称即可

按需导入导出

按照导出的语法 export const s1= 10 按需导入的语法 import{按需要导入的名称} form '模块路径'

//按需导出
export const age =18
export const fn=()=>{}
//默认导出
export default {a:1,b:2}
//按需导入+默认导入
import {age as a,fn,obj,c} form './tool.js'
//a=18,fn,obj正常,
//age的值改成a了,使用没有age=undefind,c也一样
age=undefine ,c=undefine

注意 1每个模块中科院有的偶次按需导出 2按需导入的成员名称必须和按需导出的名称保持一样 3按需导入时,可以使用as关键字进行 从命名

默认导出和整理导出一起使用

tool.js
//按需导出
export const age =18
export const fn=()=>{}
//默认导出】
export default{a:1,b:2}
index.js
//按需导入+默认导入
import obj,{age,fn} form './tool.js'
//obj={a:1,b:2}
//age=18,fn正常

扩展:让Chrome浏览器支持es6模块化

文件名目录

- index.html # 引入 index.js
- index.js   # 引入 tool.js 
- tool.js

index.html

<!DOCTYPE html>
<html lang="zh">
  注意这里的module
  <script type="module" src="./index.js"></script> 
</html>

index.js

import {a,b} from './tool.js'
console.log(a,b)

tool.js

export const a = 1;
export const b = 2;