定义

一个模块实际上就是一个.js文件,使用关键字import导入

定义一个a.js文件,代码如下

  1. const a = 1;
  2. console.log('a = ' + a);

在HTML中引入文件

  1. <script type="module">
  2. import "./a.js";
  3. //输出a=1
  4. </script>

注意:

  1. import可以是相对路径,也可以是绝对路径
  2. import模块只会导入一次,无论引入多少次
  3. import ‘./a.js’; 相对于引入一个文件
  4. import只能写在type=”model”的script标签中

使用

提前执行

先执行import中的代码,然后再执行其他代码

  1. const a = 1;
  2. console.log('a = ' + a);
  1. <script type="module">
  2. console.log("Hello");
  3. import "./a.js";
  4. //先输出a=1,Hello
  5. </script>

单个导出

一个一个对象导出

  1. console.log('Hello module import');
  2. export const a=12;
  3. export const b=5;
  4. export let c=100;
  1. <script type="module">
  2. import {a,b,c} "./a.js";
  3. console.log(a, b,c);
  4. </script>

别名导出

定义导出对象的名称

  1. console.log('Hello module import');
  2. const a=12;
  3. const b=5;
  4. let c=100;
  5. export {
  6. a as aName,
  7. b as bName,
  8. c as cName
  9. }
  1. <script type="module">
  2. import {aName , bName , cName} "./a.js";
  3. console.log(aName , bName , cName);
  4. </script>

全部导出

将所有导出内容集成到一个对象中

  1. <script type="module">
  2. import * as modObj "./a.js";
  3. console.log(modObj);
  4. </script>

导出default

  1. console.log('Hello module import');
  2. export default "Hello World";
  1. <script type="module">
  2. import a modObj "./a.js";
  3. console.log(a); //Hello World
  4. </script>

混合导出

既有export default,也有export 导出

  1. export default "Hello World";
  2. export const name = "Ken";
  3. export const age = 12;
  1. <script type="module">
  2. import a,{ name , age } modObj "./a.js";
  3. console.log(a); //Hello World
  4. console.log(name , age); //Ken 12
  5. </script>

import()语法

import()语法用于动态引入,这是一个异步操作,返回一个promise对象

  1. import('./a.js').then(function(res) {
  2. console.log(res);
  3. });

结合Promise.all,同时引入多个js模块

  1. Promise.all([import('./a.js'),import('./b.js')].then(function(res) {
  2. console.log(res);
  3. });