2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Jokainen js-tiedosto on moduuli, ja CommonJS-moduulimääritykset otetaan käyttöön oletuksena.
Uusi ES6-moduuli pk perinteinen CommonJS-moduuli
ominaisuus | CommonJS | ES6 Modulaarisuus |
---|---|---|
Viedä | exports esine | export Avainsanat |
tuonti | require() toiminto | import Avainsanat |
lataustila | Synkronoida | asynkroninen |
suoritustila | Singleton | Singleton |
Riippuvuudet | staattinen | dynaaminen |
Puun muoto tärisee | ei tue | tuki |
lataustila
suoritustila
Sekä CommonJS- että ES6-moduulien suoritus on yksittäinen: moduuli ladataan vain kerran, ja kaikki viittaukset moduuliin osoittavat samaan ilmentymään.
Riippuvuudet
Puun muoto tärisee
Optimointitekniikka käyttämättömän koodin poistamiseen JavaScript-nipuista.
Kolme tapaa ottaa käyttöön ES6-moduulit
"type": "module"
, joten Node.js käsittelee kaikkia .js-tiedostoja ES6-moduuleina..mjs
, jotta Node.js käsittelee sitä automaattisesti ES6-moduulina.type="module"
AttribuutitES6-moduulin syntaksi
Jokaisella moduulilla voi olla vain yksi oletusvienti
let a = 1
// 默认导出 a
export default a
// 导入默认时,可以命其他名称
import b from './demo.js'
console.log(b)
Funktiolausekkeita/anonyymejä funktioita voidaan käyttää suoraan oletusvientinä
export default function myFunc() {}
export default function() {}。
let a = 1
let b = 2
export { a, b }
// 导入多项时,必须与导出名对应
import { a, b } from './demo.js'
console.log(a, b)
let a = 1
let b = 2
export { a as c, b as d }
// 导入时,只能导入新的名称
import { c, d } from './demo.js'
console.log(c, d)
export { name1, name2, ... } from 'module-name'
export let a = 1;
export let b = 2;
// 通过 as 重命名为一个变量(值为对象)
import * as myModule from "./demo.mjs";
console.log(myModule.a);
console.log(myModule.b);
import {trunc as StringLib} from "../lib/string.js"
import {trunc as MathLib} from "../lib/math.js"
import pkg from "./package.json" assert { type: "json" };
const { default: jsonObject } = await import('./file.json', {
assert: {
type: 'json'
}
});
import * as 自定义名称 from '模块名称'
CommonJS-moduulin syntaksi
Viedä
module.exports = "朝阳";
tuonti
const demoModule = require("./demo.js");
console.log(demoModule); // 朝阳
Viedä
exports.a = 1;
exports.b = 2;
tuonti
const demoModule = require("./demo.js");
console.log(demoModule); // { a: 1, b: 2 }