π¦ Barrel Export μ 리 (React / TypeScript)
1οΈβ£ Barrel Exportλ?
Barrel Exportλ μ¬λ¬ νμΌμμ exportν κ²λ€μ
π νλμ νμΌ(index.ts)μμ λͺ¨μμ λ€μ exportνλ λ°©μμ΄λ€.
μ½κ² λ§νλ©΄ π βexport λͺ¨μμ£Όλ μ€κ° μ§ν©μβ
2οΈβ£ μ μ°λκ°?
κΈ°μ‘΄ λ°©μ:
import Button from '@/components/common/button/Button'
import Input from '@/components/common/input/Input'
import Modal from '@/components/common/modal/Modal'
π κ²½λ‘κ° κΈΈκ³ μ§μ λΆν¨
Barrel Export μ¬μ©:
import { Button, Input, Modal } from '@/components/common'
π κΉλνκ³ μ μ§λ³΄μ μ¬μ
3οΈβ£ κΈ°λ³Έ ꡬ쑰
components/
ββ common/
ββ button/
β ββ Button.tsx
β ββ index.ts
ββ input/
β ββ Input.tsx
β ββ index.ts
ββ modal/
β ββ Modal.tsx
β ββ index.ts
ββ index.ts β (Barrel)
4οΈβ£ μμ± λ°©λ²
(1) κ° μ»΄ν¬λνΈ ν΄λ
// button/index.ts
export { default as Button } from './Button'
// input/index.ts
export { default as Input } from './Input'
(2) μ΅μμ Barrel
// common/index.ts
export * from './button'
export * from './input'
export * from './modal'
5οΈβ£ export λ°©μ μ΄ν΄
export default
export default Button
π κΈ°λ³Έ export (μ΄λ¦ μμ )
export named
export const Button = () => {}
π μ΄λ¦ κ³ μ
Barrelμμ μμ£Ό μ°λ λ°©μ
export { default as Button } from './Button'
π defaultλ₯Ό namedλ‘ λ°κΏμ μ¬export
6οΈβ£ μ₯μ
β 1. import κ²½λ‘ λ¨μν
import { Button } from '@/components/common'
β 2. ꡬ쑰 μ¨κΉ (μΊ‘μν)
π λ΄λΆ ν΄λ ꡬ쑰 λ°λμ΄λ μν₯ μμ
β 3. μ μ§λ³΄μ μ¬μ
π export κ΄λ¦¬ ν κ³³μμ κ°λ₯
β 4. νμ μ μ 리
π νμλ€μ΄ import κ·μΉ ν΅μΌ κ°λ₯
7οΈβ£ λ¨μ (μ€μ)
β 1. λ무 λ§μ΄ μ°λ©΄ κ°λ μ± λ¨μ΄μ§
π μ΄λμ μ¨ κ±΄μ§ ν·κ°λ¦Ό
β 2. μν μ°Έμ‘° μν
π indexλΌλ¦¬ importνλ©΄ λ¬Έμ λ°μ
β 3. νΈλ¦¬ μμ΄νΉ μν₯ κ°λ₯
π νμ μλ μ½λκΉμ§ λ¬ΆμΌ μ μμ
8οΈβ£ μΈμ μ°λ κ² μ’λ
π μ΄λ° κ²½μ°μ κ°λ ₯ μΆμ²
- κ³΅ν΅ μ»΄ν¬λνΈ (Button, Input, Modal)
- UI λΌμ΄λΈλ¬λ¦¬ ꡬ쑰
- λμμΈ μμ€ν
π μ΄λ° κ²½μ°λ λΉμΆμ²
- λΉμ¦λμ€ λ‘μ§ ν΄λ
- λ무 κΉμ ꡬ쑰
- μμ νλ‘μ νΈ
9οΈβ£ μ€λ¬΄ ν
π λ³΄ν΅ μ΄λ κ² κ·μΉ μ‘μ
components/commonβ Barrel μ¬μ©features/xxxβ νμν λλ§ μ¬μ©
π νμΌ λ€μ΄λ° κ·μΉ
index.ts // Barrel μ μ©
π§ ν΅μ¬ μ 리
- Barrel Export = export λͺ¨μμ£Όλ νμΌ
- import κ²½λ‘λ₯Ό λ¨μνκ² λ§λ€μ΄μ€
- κ³΅ν΅ μ»΄ν¬λνΈμμ κ°μ₯ λ§μ΄ μ¬μ©λ¨
- κ³Όνκ² μ°λ©΄ μ€νλ € 볡μ‘ν΄μ§ μ μμ
π₯ ν μ€ μμ½
π βμ¬λ¬ exportλ₯Ό νλμε ₯ε£λ‘ λͺ¨μμ importλ₯Ό κΉλνκ² λ§λλ ν¨ν΄β