Middle
ES Modules'da modullar qanday ishlaydi?
sobes.tech AI
AIdan javob
ES Modulesdagi modullar importlar va eksportlar asosida ishlaydi. Brauzer yoki bajarish muhiti JavaScript fayllarini tahlil qiladi, kodni bajarishdan oldin modullar orasidagi bog'liqliklarni aniqlaydi va bog'liqlik diagramini yaratadi.
Ishlash prinsiplari:
- Statik tahlil: Importlar va eksportlar kodni bajarishdan oldin aniqlanadi, bu yuklashni optimallashtirish va xatolarni erta aniqlash imkonini beradi.
- Yagona bog'lanish: Har bir import boshqa moduldagi aniq eksportga bog'lanadi.
- Yagona nusxa: Modul faqat bir marta bajariladi birinchi importda. Keyingi barcha importlar shu nusxaga havola oladi.
Modulning hayot aylanishi:
- Qurilish: Modulning manba kodi tahlil qilinadi, importlar va eksportlar aniqlanadi. Modul qobig'i yaratiladi.
- Yuklash: Barcha import qilingan modullar yuklanadi. Agar bog'liqlik keshda bo'lmasa, tarmoq yoki fayl tizimiga so'rov yuboriladi.
- Bog'lanish: Importlar va eksportlar bog'lanadi. Import qilingan modullardan o'zgaruvchilar va funksiyalar foydalanishga tayyor bo'ladi. Agar import hal qilinmasa, xato chiqariladi.
- Bajarish: Modul kodi bajariladi. Barcha eksport qilingan qiymatlar import qiluvchilar uchun mavjud bo'ladi.
Misollar:
// moduleA.js
export const name = 'Alice';
export function sayHello() {
console.log(`Hello, ${name}!`);
}
// moduleB.js
import { name, sayHello } from './moduleA.js';
console.log(name); // Chiqarish: Alice
sayHello(); // Chiqarish: Hello, Alice!
CommonJS bilan farqlar:
| Xususiyat | ES Modules | CommonJS |
|---|---|---|
| Bog'lanish | Statik | Dinamik |
| Yuklash | Asinxron (brauzerda) | Sinxron (standart) |
| Eksport | export kalit so'zi |
module.exports |
| Import | import kalit so'zi |
require funksiyasi |
| Foydalanish | Brauzer va Node.js (eksperimental) | Node.jsda |