Modullarni eksport qilish
export kalit so‘zi
Modul export kalit so‘zidan foydalanadi
boshqa fayllar bilan qiymatlarni almashish uchun.
Modulda ko‘plab nomlangan eksportlar bo‘lishi mumkin.
Modulda (ixtiyoriy ravishda) bitta standart eksport (default export) bo‘lishi mumkin.
Nomlangan eksportlar
Nomlangan eksport har bir elementga nom beradi.
Elementlarni alohida eksport qilish yoki pastki qismidagi { } belgisiga o‘rash mumkin:
Modul fayli "person.js"
Nomi va yoshi alohida eksport qilinadi:
// export name and age
export const name = "Jesse";
export const age = 40;
Nomi va yosh bir vaqtning o‘zida quyida eksport qilinadi:
const name = "Jesse";
const age = 40;
// export name and age
export { name, age };
Nomlangan eksportlarni {} ga o‘rash orqali import qilasiz.
Nomlar aynan mos kelishi shart.
Modul skripti
<script type="module">
// Import name and age
import { name, age } from "./person.js";
</script>
"math.js" modul fayli
Bu yerda PI, qo‘shish, ayirish, ko‘paytirish va bo‘lish eksport deb ataladi:
export const PI = 3.14159;
export function add(a, b) {
return a + b;
}
export function subtract(a, b) {
return a - b;
}
export function multiply(a, b) {
return a * b;
}
export function divide(a, b) {
return a / b;
}
Modul skripti
<script type="module">
import { add, subtract, PI } from './math.js';
</script>
O‘zingiz sinab ko‘ring »
Nomlarning qat’iyligi
Nomlangan eksportlar bilan import qilingan nomlar to‘liq mos kelishi kerak.
Nomlangan eksportlar imlo xatolari yoki qayta nomlash sababli yuzaga keladigan xatolarning oldini oladi.
import { calcluate } from './math.js'; // ❌ error thrown
Yordamchi utilitalar (helpers)
Agar yordamchi modullarda bir nechta yordamchi funksiya bo‘lsa, ular nomlangan eksportlar bilan eng yaxshi ishlaydi:
- math.js
- stringUtils.js
- domHelpers.js
- dateHelpers.js
Nomlangan eksportlar ko‘plab yordamchi vositalarni o‘z ichiga olgan "asboblar qutisi" modullari uchun juda mos.
Tree-Shaking
Nomlangan eksportlar bundlerlarga ishlatilmagan kodni olib tashlash (tree-shaking) imkonini beradi.
Ushbu misolda PI, ayirish, ko‘paytirish va bo‘lish o‘chiriladi:
import { add } from './math.js';
Nomlangan eksportdan qachon foydalanish kerak?
| Cases | Why Named Export |
|---|---|
| Many functions | Barcha funksiyalarni aniq sanab o‘tadi |
| Strictness needed | Prevents name typos |
| Big projects | Improves consistency |
| Yordamchi vositalar to‘plamlari | Matches module structure |
| Tree-shaking | Removes unused code automatically |
Standart eksportlar
Standart eksport moduldan bitta asosiy qiymatni eksport qiladi.
Bu modulning asosiy funksionalligi haqida aniq niyat beradi.
Agar fayl bitta asosiy funksiya, sinf yoki qiymatni ochish uchun mo‘ljallangan bo‘lsa, standart eksport buni aniq qiladi:
export default function calculateSum() { ... }
Standart eksport moslashuvchan
Standart eksport har qanday nom yordamida import qilish imkonini beradi:
import calc from './calculateSum.js';
Calc nomi asl nusxaga mos kelishi shart emas.
Nom to‘liq mos kelishi kerak bo‘lgan eksport bilan solishtirganda:
import { calculateSum } from './calculateSum.js';
Buni message.js nomli modul faylidan foydalanib o‘zingiz sinab ko‘ring:
Modul fayli "message.js"
const message = () => {
const name = "Jesse";
const age = 40;
return name + ' is ' + age + 'years old.';
};
export default message;
1-modul skripti
<script type="module">
import message from "./message.js";
</script>
2-modul skripti
<script type="module">
import text from "./message.js";
</script>
Standart eksport ixcham
Ko‘plab kutubxonalar bitta imkoniyatni standart eksport sifatida taqdim etadi:
import React from 'react';
Standart va nomlangan eksportlarni birlashtirish
Modul bitta asosiy funksiya va bir nechta yordamchi funksiyalarni taqdim etishi mumkin:
Modul fayli
export default function parse() { ... }
export function validate() { ... }
export function format() { ... }
Modul skripti
import parse, { validate, format } from './parser.js';
Standart eksportni qachon ishlatish kerak?
| Qachon | Why |
|---|---|
| Bitta asosiy maqsad | Asosiy funksiyaga ega modullar uchun qulay |
| Flexible naming | Import qiluvchilar istalgan nomni tanlashi mumkin |
| Cleaner imports | Qisqaroq va soddaroq import sintaksisi |
| Common pattern | Frameworklar uni asosiy API uchun ishlatadi |
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
