Middle
Ինչպես են աշխատում ES Modules-ի մոդուլները?
sobes.tech AI
Պատասխան AI-ից
ES Modules մոդուլները աշխատում են ներմուծումների և արտահանումների ստատիկ վերլուծության հիման վրա։ Բրաուզերը կամ գործարկման միջավայրը վերլուծում է JavaScript ֆայլերը, որոշում է մոդուլների միջև կախվածությունները նախքան կոդի գործարկումը և ստեղծում է կախվածությունների գրաֆիկ:
Աշխատանքի սկզբունքները:
- Ստատիկ վերլուծություն: Ներմուծումները և արտահանումները որոշվում են նախքան կոդի գործարկումը, ինչը թույլ է տալիս օպտիմալացնել բեռնումը և հայտնաբերել սխալները վաղ փուլում:
- Միայն մեկ օրինակ: Յուրաքանչյուր ներմուծում կապվում է կոնկրետ արտահանման հետ մյուս մոդուլում:
- Միայն մեկ օրինակ: Մոդուլը գործարկվում է միայն մեկ անգամ առաջին ներմուծման ժամանակ։ Բոլոր հաջորդական ներմուծումները ստանում են նույն օրինակին հղում:
Մոդուլի կյանքի ցիկլը:
- Կառուցում: Մոդուլի ելքային կոդը վերլուծվում է, հայտնաբերվում են ներմուծումներ և արտահանումներ։ Ստեղծվում է մոդուլի շղթա:
- Բեռնում: Բեռնվում են բոլոր ներմուծվող մոդուլները։ Եթե կախվածությունը չի կեշավորված, կատարվում է ցանցային կամ ֆայլային համակարգի հարցում:
- Կապում: Ներմուծումները և արտահանումները կապվում են։ Փոփոխականներն ու ֆունկցիաները ներմուծվող մոդուլներից հասանելի են դառնում։ Եթե ներմուծումը չի կարող լուծվել, արտանետվում է սխալ:
- Գործարկում: Կատարվում է մոդուլի կոդի գործարկումը։ Բոլոր արտահանվող արժեքները հասանելի են դարձնում ներմուծող մոդուլներին:
Օրինակներ:
// 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-ում |