ES6 模块化 关键字export和import


ES6 模块化 关键字exportimport

1.ES6中一个模块就是一个包含JS代码的文件,一般来说,模块中所有变量对其他模块不可见,除非我们进行导出。模块系统使用exportimport进行模块的导出引入。

2.导出方式

(1) name export

① 两种方式

1) 对于要导出的变量加上export  export const aexport function b

=====================================

export const sqrt = Math.sqrt;

export function square(x) {

    return x * x;

}

=====================================

2) 用列表统一导出export {a,b}

=====================================

const sqrt = Math.sqrt;

function square(x) {

    return x * x;

export {sqrt, square}

=====================================

(2) default export

① 一个模块只能有一个默认导出

② 导入的名称可以和导出的名称不一致

=====================================

//------ myFunc.js ------

//`没有名字`

export default function() {...};

//------ main.js ------

//`随便命名`

//`注意这里默认导出在导入时不需要用{}`

import myFunc from 'myFunc';

myFunc();

=====================================

3.重命名exportimport

(1) 目的:解决导出命名冲突

(2) 导入重命名

=====================================

// 这两个模块都会导出以`flip`命名的东西。

// 要同时导入两者,我们至少要将其中一个的名称改掉。

import {flip as flipOmelet} from "eggs.js";

import {flip as flipHouse} from "real-estate.js";

=====================================

默认导入的重命名

=====================================

import { default as foo } from 'lib';

import foo from 'lib';

=====================================

(3) 导出重命名

=====================================

function v1() { ... }

function v2() { ... }

export {

  v1 as streamV1,

  v2 as streamV2,

  v2 as streamLatestVersion

};

=====================================

默认导出的重命名

=====================================

//------ module1.js ------

export default 123;

//------ module2.js ------

const D = 123;

export { D as default };

=====================================

拓展: ES6模块化与CommonJS模块化