Modullarni eksport qilish

ULASHISH

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>

O‘zingiz sinab ko‘ring »

Nomlangan eksportlar to‘g‘ri nomlashni ta’minlaydi. Agar siz nomni noto‘g‘ri yozsangiz, xatoga yo‘l qo‘yasiz.

"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?

CasesWhy Named Export
Many functionsBarcha funksiyalarni aniq sanab o‘tadi
Strictness needed Prevents name typos
Big projectsImproves consistency
Yordamchi vositalar to‘plamlariMatches module structure
Tree-shakingRemoves 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() { ... }
Siz faylda faqat bitta standart eksport qilishingiz mumkin.

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>

O‘zingiz sinab ko‘ring »

2-modul skripti

<script type="module">
import text from "./message.js";
</script>

O‘zingiz sinab ko‘ring »


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?

QachonWhy
Bitta asosiy maqsadAsosiy funksiyaga ega modullar uchun qulay
Flexible namingImport qiluvchilar istalgan nomni tanlashi mumkin
Cleaner importsQisqaroq va soddaroq import sintaksisi
Common patternFrameworklar uni asosiy API uchun ishlatadi

W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!