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-ში |