ES6规范中模块的暴露与导入

217 阅读2分钟

ES6模块化规范——模块暴露

模块的本质就是一个对象,任何的暴露语法就是向这个对象中添加属性

1.分别暴露 export let 变量1 = 值1

【注】:想暴露谁,就在谁的前边加export

【注】:分别暴露,使用解构导入,且{ }中的变量名要和分别暴露的名称一样。

2.统一暴露 export{变量名1,变量名2...}

【注】:统一暴露,使用解构导入,且{ }中的变量名要和分别暴露的名称一样。

3.默认暴露export default 表达式

【注】:默认暴露,使用默认导入,不使用解构{ },import 自定义变量名 from ...

【注】:默认暴露中的表达式,可以是变量名,也可以是任意类型的值;

【注】:在一个模块(js文件)中,默认暴露只能写一次;

ES6模块化规范——模块导入

1. 解构导入 import {分别/通用暴露中的变量名} from '文件路径'

适用于分别暴露,{}里面写的是子模块中export后面的变量名

2. 默认导入 import 别名 from '文件路径'

适用于默认暴露

3. 通用导入 (用的很少)import * as 别名 from '文件路径'

通用导入是一种万能的方式,但是一般不用。

总结

//分别暴露
export let arr = [1,2,3];
//分别暴露——导入(解构导入)
import {arr} from './module1'
//导入时,不可自定义变量名,arr不可以变
//如果有变量名冲突的问题:arr as arr1

//统一暴露
let a1 = 100;
let a2 = 200;
export {a1,a2}; 
//统一暴露——导入(解构导入)
import {a1,a2} from './module1'

//默认暴露
let b1 = 'Evelyn';
export default b1
//默认暴露——导入(默认导入)
import beauty from './module1'
//beauty是变量名
//只有默认导入的方式可以自定义变量名