导航
import xxx from './xxx';
,script
依赖 type="module"
import('./xxx');
不依赖 type="module"
import('./xxx').then(module => console.log(module));
type="module"
,不加会报错↓用 vite 跑个服务器能行(vite 默认支持ES6 的 import、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
}
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);
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'
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'
注意:
utils
得写 { plus, minus }
前边,因为有默认导出的原因也可以把 { plus, minus }
作为一个整体导入:
import utils, * as computedMethods from './utils'
const { plus, minus } = computedMethods;
const res = plus(1, 2);
import('./utils').then(module => {
console.log(module);
const { a, b } = module.default;
const { plus, minus } = module;
const res = plus(1, 2);
});
(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);
})();