导航


HTML

CSS

JavaScript

浏览器 & 网络

版本管理

框架

构建工具

TypeScript

性能优化

软实力

算法

UI、组件库

Node

冷门技能

import、export 只支持在 http、https 服务端起起来中使用

Untitled

Untitled

Untitled

Untitled

用 vite 跑个服务器能行(vite 默认支持ES6 的 import、export)

Untitled

静态 import 和动态 import 方式

Untitled

import、export 语法

导出模块 export {...}:

utils.js

export function plus(a, b) { return a + b }

export function minus(a, b) { return a - b }

相当于

function plus(a, b) { return a + b }
function minus(a, b) { return a - b }

export {
	plus,
  minus
}

⭐️ 注意:

import { plus, minus } from './utils'

const res = plus(1, 2);
const res1 = minus(1, 2);

不解构的方式导入:

import * as utils from './utils'
// ↑解释:把 *(模块)命名为叫 utils 的命名空间,它是个对象

const { plus, minus } = utils;

const res = plus(1, 2);
const res1 = minus(1, 2);

重命名方法导入:

import { plus: computedPlus, minus } from './utils';

const res = computedPlus(1, 2);
const res1 = minus(1, 2);

默认导出 export default

function plus(a, b) { return a + b }
function minus(a, b) { return a - b }

// ↓这叫做:默认导出一个对象
export default {
	plus,
  minus
}

导入:

import utils from './utils';

const { plus, minus } = utils;

模块副作用(副作用导入)

function plus(a, b) { return a + b }
function minus(a, b) { return a - b }

console.log('This is a UtilsModule');

如果想要上边模块中 log 执行,直接导入就好:

import './utils'

Untitled

导出模块和默认导出同时使用

export default {
	a: 1,
  b: 2
}

export function plus(a, b) { return a + b }

export function minus(a, b) { return a - b }

导入:

import utils, { plus, minus } from './utils'

注意:

也可以把 { plus, minus } 作为一个整体导入:

import utils, * as computedMethods from './utils'

const { plus, minus } = computedMethods;
const res = plus(1, 2);

⭐️ 动态 import

import().then

import('./utils').then(module => {
	console.log(module);

  const { a, b } = module.default;
  const { plus, minus } = module;

  const res = plus(1, 2);
});

Untitled

或者用 async/await 写法

(async () => {
	const { default: utils, plus, minus } = await import('./utils');
  // 不能直接用 default,因为是关键字
  const res = plus(1, 2);
})();
(async () => {
	const { default: { a, b }, plus, minus } = await import('./utils');
  // 不能直接用 default,因为是关键字
  console.log(a, b);
})();