es6模块 import,export

1,012 阅读1分钟

exports的几种用法

Named exports(导出每个变量/函数)

// exports.js
export const item = THIS_CONST;
export function sum(x,y){
    return x+y
}
function multiply(x,y){
    return x*y
}
export multiply;


//import1.js
import {item,sum,multiply} from 'export.js'
console.log(sum(1+2)) //3
console.log(item) //THIS_CONST
console.log(mutiply(9*9) //81

//import2.js
import * as el from 'export.js'
...
...
console.log(el.mutiply(9*9)) //81

上面的导出模块有点不简洁,有点混乱,格式可以变,统一导出即可

...
...
export {item,sum,multiply}



Default exports

一般用来导出一个简单的函数或者一个类,需要注意的是默认导出每个模块只运行一个默认导出

//export.js
export default function(){
    ...
}
//export2.js
class myClass {
    constructor(){
        ...
    }
    name(){
        console.log('myClass')
    }
}
export myClass
//import.js
import defaultFunc from 'export.js';
defaultFunc()

import myClass from 'myClass'
myClass.name() //'myClass'

需要注意的是需要加{}来接收 而如果是Named exports和default exports混合一起导出的Mixed exports的话可以通过{}和不加{}来区分Named exports和default exports

Re-exporting

别名导出

// exports.js
export function getName(){
    ...
}
eport function setName(){
    ...
}
export {
    getName as get,
    getName as getV2,
    setName as set
}

别名导出可以让同一个变量/函数别名两次导出,两个都是可用的

import

import {xx} from 'exports.js' //直接获取导出元素
import * as xx from 'exports.js' //把所有导出元素整合到一个对象中