Sobes.tech
Middle

Ինչպես են աշխատում ES Modules-ի մոդուլները?

sobes.tech AI

Պատասխան AI-ից

ES Modules մոդուլները աշխատում են ներմուծումների և արտահանումների ստատիկ վերլուծության հիման վրա։ Բրաուզերը կամ գործարկման միջավայրը վերլուծում է JavaScript ֆայլերը, որոշում է մոդուլների միջև կախվածությունները նախքան կոդի գործարկումը և ստեղծում է կախվածությունների գրաֆիկ:

Աշխատանքի սկզբունքները:

  • Ստատիկ վերլուծություն: Ներմուծումները և արտահանումները որոշվում են նախքան կոդի գործարկումը, ինչը թույլ է տալիս օպտիմալացնել բեռնումը և հայտնաբերել սխալները վաղ փուլում:
  • Միայն մեկ օրինակ: Յուրաքանչյուր ներմուծում կապվում է կոնկրետ արտահանման հետ մյուս մոդուլում:
  • Միայն մեկ օրինակ: Մոդուլը գործարկվում է միայն մեկ անգամ առաջին ներմուծման ժամանակ։ Բոլոր հաջորդական ներմուծումները ստանում են նույն օրինակին հղում:

Մոդուլի կյանքի ցիկլը:

  1. Կառուցում: Մոդուլի ելքային կոդը վերլուծվում է, հայտնաբերվում են ներմուծումներ և արտահանումներ։ Ստեղծվում է մոդուլի շղթա:
  2. Բեռնում: Բեռնվում են բոլոր ներմուծվող մոդուլները։ Եթե կախվածությունը չի կեշավորված, կատարվում է ցանցային կամ ֆայլային համակարգի հարցում:
  3. Կապում: Ներմուծումները և արտահանումները կապվում են։ Փոփոխականներն ու ֆունկցիաները ներմուծվող մոդուլներից հասանելի են դառնում։ Եթե ներմուծումը չի կարող լուծվել, արտանետվում է սխալ:
  4. Գործարկում: Կատարվում է մոդուլի կոդի գործարկումը։ Բոլոր արտահանվող արժեքները հասանելի են դարձնում ներմուծող մոդուլներին:

Օրինակներ:

// moduleA.js
export const name = 'Alice';
export function sayHello() {
  console.log(`Hello, ${name}!`);
}
// moduleB.js
import { name, sayHello } from './moduleA.js';

console.log(name); // Արտածում՝ Alice
sayHello(); // Արտածում՝ Hello, Alice!

Տարբերություններ CommonJS-ից:

Հատկություն ES Modules CommonJS
Կապում Ստատիկ Դինամիկ
Բեռնում Ասինխրոն (բրաուզերում) Սինխրոն (նույնպես)
Արտահանում export բանալի բառը module.exports
Ներմուծում import բանալի բառը require ֆունկցիա
Օգտագործում Բրաուզերում և Node.js (փորձնական) Node.js-ում