Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΊΡΠΏΠΎΡΡ ΠΈ ΡΠΊΡΠΏΠΎΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ?
ΠΠΎΠ»Π½ΡΠΉ ΠΎΡΠ²Π΅Ρ
// === ΠΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΊΡΠΏΠΎΡΡ ===
// math.js
export const PI = 3.14159;
export function add(a, b) {
return a + b;
}
export class Vector {
constructor(x, y) {
this.x = x;
this.y = y;
}
}
// ΠΠΌΠΏΠΎΡΡ β ΠΈΠΌΠ΅Π½Π° Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ
import { PI, add, Vector } from "./math.js";
// ΠΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΈΠΌΠΏΠΎΡΡΠ΅
import { add as sum } from "./math.js";
sum(2, 3); // 5
// ΠΠΌΠΏΠΎΡΡ Π²ΡΠ΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡ
import * as math from "./math.js";
math.add(2, 3);
math.PI;
// === ΠΠΊΡΠΏΠΎΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ===
// logger.js
export default class Logger {
log(msg) {
console.log(`[LOG] ${msg}`);
}
}
// ΠΠΌΠΏΠΎΡΡ β ΠΈΠΌΡ Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡ ΡΠ°ΠΌ
import Logger from "./logger.js";
import MyLogger from "./logger.js"; // ΡΠΎΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ β ΠΈΠΌΡ Π»ΡΠ±ΠΎΠ΅
ΠΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±Π° ΡΠΈΠΏΠ°:
// api.js
export const BASE_URL = "https:// api.example.com";
export function get(path) { /* ... */ }
export function post(path, data) { /* ... */ }
export default class ApiClient {
constructor(token) {
this.token = token;
}
}
// ΠΠΌΠΏΠΎΡΡ ΠΎΠ±ΠΎΠΈΡ
ΡΠΈΠΏΠΎΠ²
import ApiClient, { BASE_URL, get, post } from "./api.js";
Π Π°Π·Π½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΡΠΊΡΠΏΠΎΡΡ:
// Π‘ΠΏΠΎΡΠΎΠ± 1: export ΠΏΡΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ
export const name = "Alice";
export function greet() {}
// Π‘ΠΏΠΎΡΠΎΠ± 2: export ΡΠΏΠΈΡΠΊΠΎΠΌ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Π°
const name = "Alice";
function greet() {}
export { name, greet };
// Π‘ΠΏΠΎΡΠΎΠ± 3: ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈ ΡΠΊΡΠΏΠΎΡΡΠ΅
function internalHelper() {}
export { internalHelper as helper };
// Π‘ΠΏΠΎΡΠΎΠ± 4: ΡΠ΅ΡΠΊΡΠΏΠΎΡΡ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ
export { add, subtract } from "./math.js";
export { default as Math } from "./math.js";
Π Π΅Π°Π»ΡΠ½ΡΠ΅ ΠΊΠ΅ΠΉΡΡ
ΠΠΎΡΠ΅ΠΌΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΊΡΠΏΠΎΡΡΡ Π»ΡΡΡΠ΅ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΡΠ»ΡΡΠ°Π΅Π²:
// β default export β IDE Π½Π΅ Π·Π½Π°Π΅Ρ, ΡΡΠΎ Π²Π½ΡΡΡΠΈ, Π΄ΠΎ ΠΈΠΌΠΏΠΎΡΡΠ°
import something from "./utils.js"; // ΡΡΠΎ Π·Π° something?
// β
named export β IDE ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΈΠΌΠ΅Π½Π° ΠΏΡΠΈ Π²Π²ΠΎΠ΄Π΅
import { formatDate, parseDate } from "./utils.js"; // Π²ΡΡ ΡΡΠ½ΠΎ
// β default export β ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π°Π·ΡΠ²Π°Π΅Ρ ΠΏΠΎ-ΡΠ²ΠΎΠ΅ΠΌΡ
import Button from "./Button.js";
import Btn from "./Button.js";
import MyButton from "./Button.js"; // Ρ
Π°ΠΎΡ ΠΏΡΠΈ ΠΏΠΎΠΈΡΠΊΠ΅ ΠΏΠΎ ΠΏΡΠΎΠ΅ΠΊΡΡ
// β
named export β ΠΎΠ΄Π½ΠΎ ΠΈΠΌΡ Π²ΠΎ Π²ΡΡΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅
import { Button } from "./Button.js"; // Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎ
ΠΠΎΠ³Π΄Π° default export ΡΠΌΠ΅ΡΡΠ΅Π½ β ΠΎΠ΄ΠΈΠ½ Π³Π»Π°Π²Π½ΡΠΉ ΡΠΊΡΠΏΠΎΡΡ Π½Π° ΡΠ°ΠΉΠ»:
// React-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ β ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π½Π° ΡΠ°ΠΉΠ»
// UserProfile.jsx
export default function UserProfile({ user }) {
return <div>{user.name}</div>;
}
Π Π΅Π·ΡΠΌΠ΅
ΠΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΊΡΠΏΠΎΡΡΡ β Π΄Π»Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ, Π΄Π°ΡΡ Π°Π²ΡΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈ Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±ΡΠ°Π·ΠΈΠ΅. ΠΠΊΡΠΏΠΎΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ β Π΄Π»Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Ρ ΠΎΠ΄Π½ΠΈΠΌ Π³Π»Π°Π²Π½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ (ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΠΊΠ»Π°ΡΡ). Π ΠΊΡΡΠΏΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ Π»ΡΡΡΠ΅ ΠΎΡΠ΄Π°Π²Π°ΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠΊΡΠΏΠΎΡΡΠ°ΠΌ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΡΡΠΈ.