ES Modules․ import և export modern JavaScript-ում
ES Modules կամ ESM (ECMAScript Modules) հանդիսանում է JavaScript-ի ստանդարտ մոդուլային համակարգը, որը պաշտոնապես ներկայացվեց ECMAScript 2015 (ES6) տարբերակում։ Այն թույլ է տալիս կազմակերպել կոդը ավելի մաքուր և արդյունավետ ձևով, թե՛ բրաուզերում, թե՛ սերվերային միջավայրերում (օրինակ՝ Node.js-ում):
ES Modules-ը աշխատում է ասինխրոն կերպով և օգտագործում է import և export հիմնաբառերը մոդուլների ներմուծման և արտահանումի համար։
Ինչպես արտահանել (export) ES Modules-ում
Կան երկու հիմնական եղանակ՝ արտահանել արժեքներ ES Modules-ում՝ named export և default export։
Named Export
// greet.js ֆայլ
export function greet(name) {
return `Բարև, ${name}!`;
}
export const message = 'Բարի գալուստ մեր կայք։';
Default Export
// greet.js ֆայլ
export default function greet(name) {
return `Բարև, ${name}!`;
}
Default export-ով կարելի է արտահանել մեկ հիմնական արժեք ֆայլից։
Ինչպես ներմուծել (import) ES Modules-ում
Ներմուծումը նույնպես կատարվում է ըստ արտահանման ձևի՝
Named Imports
// main.js ֆայլ
import { greet, message } from './greet.js';
console.log(greet('Անի')); // Բարև, Անի!
console.log(message); // Բարի գալուստ մեր կայք։
Default Import
// main.js ֆայլ
import greet from './greet.js';
console.log(greet('Անի')); // Բարև, Անի!
Named և Default Import միասին
// greet.js ֆայլում
export default function greet(name) {
return `Բարև, ${name}!`;
}
export const message = 'Բարի գալուստ մեր կայք։';
// main.js ֆայլում
import greet, { message } from './greet.js';
console.log(greet('Անի')); // Բարև, Անի!
console.log(message); // Բարի գալուստ մեր կայք։
ES Modules-ի հատկությունները
- Ասինխրոն ներմուծում — բրաուզերը կարող է բեռնել մոդուլները ասինխրոն կերպով, ինչը թույլ է տալիս ավելի արագ բեռնում։
- Կոշտ սինտաքսիս — մոդուլները միշտ աշխատում են strict mode-ում (խիստ ռեժիմ)։
- Բրաուզերային աջակցություն — modern բրաուզերները (Chrome, Firefox, Safari և այլն) ուղղակիորեն աջակցում են ES Modules-ին՝ առանց հատուկ Bundler-ների։
- Static analysis — import/export հայտարարությունները կարող են վերլուծվել compile ժամանակ, ինչը հնարավորություն է տալիս օպտիմիզացիայի մեթոդներ, օրինակ՝ tree-shaking։
Ինչպես օգտագործել բրաուզերում
Եթե ուզում ես ES Modules օգտագործել ուղղակիորեն բրաուզերում, պետք է նշես type="module" <script> թեգի մեջ․
<script type="module" src="main.js"></script>
Բրաուզերն իմանում է, որ սա մոդուլային ֆայլ է և համապատասխան կերպով բեռնում է այն։
CommonJS vs ES Modules համեմատություն
- CommonJS — սինխրոն է և նախատեսված է server-side միջավայրերի համար։
- ES Modules — ասինխրոն է և նախատեսված է թե՛ բրաուզերի, թե՛ սերվերի համար։
- CommonJS-ում օգտագործվում է
require()ևmodule.exports։ - ES Modules-ում օգտագործվում է
importևexport։
Եզրակացություն
ES Modules-ը դարձել է JavaScript-ի ստանդարտ տարբերակն այսօր՝ հնարավորություն տալով գրել մաքուր, արագ և արդյունավետ կոդ։ Հաջորդ հոդվածում կխոսենք, թե ինչպես են CommonJS-ը և ES Modules-ը համատեղվում Node.js-ում և ինչ խնդիրների կարող ես հանդիպել դրանք օգտագործելիս։