Junior
ES-modullari nima?
sobes.tech AI
AIdan javob
ES-modullar JavaScriptda kodni tashkil qilishning standart usuli bo'lib, import va export sintaksisiga asoslangan.
Asosiy xususiyatlar:
- Standart: ECMAScript spetsifikatsiyasining bir qismi bo'lib, zamonaviy brauzerlar va Node.js kabi ishga tushirish muhitlari tomonidan qo'llab-quvvatlanadi.
- Aniq bog'liqlik boshqaruvi: Modullar, qanday qiymatlarni eksport qilayotganini va boshqa modullardan qanday qiymatlarni import qilayotganini aniq ko'rsatadi.
- Statik tuzilma: Modullarning bog'liqliklari kompilatsiya (yoki tahlil) bosqichida aniqlanadi, ishga tushirish vaqtida emas. Bu, Webpack, Rollup kabi vositalarga kodni optimallashtirish imkonini beradi.
- Izolyatsiya: Modul ichida e'lon qilingan har bir o'zgaruvchi, funksiya yoki sinf, odatda, shu modulga xos bo'ladi. Ular tashqaridan kirish uchun, aniq eksport qilinishi kerak.
- Asinxronlikni qo'llab-quvvatlash: Modullar brauzerlarda asinxron tarzda yuklanishi mumkin, sahifa yuklanishini to'xtatmay.
Sintaksis:
- Eksport qilish:
// app.js export const myVariable = 123; // Nomlangan eksport export function myFunction() { // Nomlangan eksport console.log('Moduldan salom!'); } export default class MyClass { // Standart eksport constructor() { console.log('MyClass namuna yaratildi'); } } - Import qilish:
// main.js import { myVariable, myFunction } from './app.js'; // Nomlangan import import MyDefaultClass from './app.js'; // Standart import console.log(myVariable); // 123 myFunction(); // Moduldan salom! const instance = new MyDefaultClass(); // MyClass namuna yaratildi
CommonJS (Node.js) bilan taqqoslaganda:
| Xususiyat | ES-modullar | CommonJS |
|---|---|---|
| Sintaksis | import, export |
require, module.exports, exports |
| Bog'liqliklar | Statik (ishga tushirishdan oldin aniqlangan) | Dinamik (ishga tushirish vaqtida aniqlangan) |
| Yuklash | Asinxron (brauzerda) | Synchronous (synchronous) |
this rootda |
undefined |
module.exports |
| Qo'llab-quvvatlash | Brauzerlar, Node.js (versiya 13.2 dan boshlab, --experimental-modules flag bilan avval) | Asosan Node.js |
ES-modullarni ishlatish, standartlashtirilganligi, vositalar tomonidan yaxshiroq qo'llab-quvvatlanishi va statik tahlil imkoniyatlari tufayli zamonaviy frontend rivojlanish uchun tavsiya etilgan yondashuvdir.