ES6模块功能

ES6模块功能

  • 模块功能主要由两个命令构成:exportimport
  • export命令用于规定模块外的其他模块可以访问的接口,import命令用于输入其他模块提供的功能。

export

export var firstName = 'Michael';
  • 每个个模块就是一个独立的文件。
  • 该文件内部的所有变量,外部无法获取。
  • 如果你希望外部能够读取模块内部的某个变量,就必须使用export关键字输出该变量。
  • export命令除了输出变量,还可以输出函数或类(class)
  • export输出的变量就是本来的名字,但是可以使用as关键字重命名。

import

import { myMethod } from 'util';

(1)按需加载。

import()可以在需要的时候,再加载某个模块。

button.addEventListener('click', event => {
  import('./dialogBox.js')
  .then(dialogBox => {
    dialogBox.open();
  })
  .catch(error => {
    /* Error handling */
  })
});

上面代码中,import()方法放在click事件的监听函数之中,只有用户点击了按钮,才会加载这个模块。

(2)条件加载

import()可以放在if代码块,根据不同的情况,加载不同的模块。

if (condition) {
  import('moduleA').then(...);
} else {
  import('moduleB').then(...);
}

上面代码中,如果满足条件,就加载模块 A,否则加载模块 B。

(3)动态的模块路径

import()允许模块路径动态生成。

import(f())
.then(...);

上面代码中,根据函数f的返回结果,加载不同的模块。

[学习地址](Module 的语法 - ECMAScript 6入门 (ruanyifeng.com))

posted @ 2021-05-28 00:35  一星一辰  阅读(92)  评论(0编辑  收藏  举报