072DATA

Modal μŠ€νƒ€μΌλ§ μ΄μŠˆμ™€ ν•΄κ²° κ³Όμ • λ³Έλ¬Έ

Anything/였λ₯˜ ν•΄κ²°(error)

Modal μŠ€νƒ€μΌλ§ μ΄μŠˆμ™€ ν•΄κ²° κ³Όμ •

0720 2024. 11. 7. 03:29

🚨 문제 상황

 

Modal μ»΄ν¬λ„ŒνŠΈμ— Tailwind CSS둜 μŠ€νƒ€μΌμ„ μ μš©ν–ˆμ„ λ•Œ

μ˜λ„ν•œ λŒ€λ‘œ μŠ€νƒ€μΌμ΄ μ μš©λ˜μ§€ μ•ŠλŠ” ν˜„μƒμ΄ λ°œμƒν–ˆλ‹€.

// 적용이 잘 μ•ˆλ˜λŠ” Tailwind μŠ€νƒ€μΌ
<div className="flex flex-col w-[585px] h-[300px] p-6">
  {/* λͺ¨λ‹¬ λ‚΄μš© */}
</div>

 

 

ν•˜μ§€λ§Œ 같은 μŠ€νƒ€μΌμ„ 인라인으둜 μ μš©ν–ˆμ„ λ•ŒλŠ” μ •μƒμ μœΌλ‘œ μž‘λ™ν–ˆλ‹€.

// 정상 μž‘λ™ν•˜λŠ” 인라인 μŠ€νƒ€μΌ
<div style={{
  display: "flex",
  flexDirection: "column",
  width: "585px",
  height: "300px",
  padding: "24px"
}}>
  {/* λͺ¨λ‹¬ λ‚΄μš© */}
</div>

 

πŸ”  원인 뢄석

 

  1. JIT 컴파일러 이슈
    • Tailwind CSS의 JIT μ»΄νŒŒμΌλŸ¬λŠ” λΉŒλ“œ μ‹œμ μ— μ‚¬μš©λœ 클래슀만 생성함
    • λ™μ μœΌλ‘œ μƒμ„±λ˜λŠ” λͺ¨λ‹¬μ˜ 경우 컴파일 μ‹œμ μ— ν•΄λ‹Ή μŠ€νƒ€μΌμ΄ ν¬ν•¨λ˜μ§€ μ•Šμ„ 수 있음.
  2. μŠ€νƒ€μΌ 적용 μ‹œμ μ˜ 차이
    • 인라인 μŠ€νƒ€μΌ: λŸ°νƒ€μž„μ— 직접 DOM에 적용됨
    • Tailwind: λΉŒλ“œ νƒ€μž„μ— μƒμ„±λ˜μ–΄μ•Ό 함

 

인라인 μŠ€νƒ€μΌμ΄ μ μš©λ˜λŠ” 이유

 

    λŸ°νƒ€μž„ vs μ»΄νŒŒμΌνƒ€μž„

  • 인라인 μŠ€νƒ€μΌ: λŸ°νƒ€μž„μ— 직접 적용됨
  • Tailwind: λΉŒλ“œ μ‹œμ μ— μƒμ„±λ˜μ–΄μ•Ό 함

이런 이유 λ•Œλ¬Έμ— 인라인은 적용이 κ°€λŠ₯ν–ˆλ‚˜λ΄„

✨  ν•΄κ²° λ°©μ•ˆ

 

1. μ „μš© μŠ€νƒ€μΌ 클래슀 μ •μ˜ν•˜μ—¬ μ‚¬μš©ν•˜κΈ°

/* globals.css */
.modal-container {
  @apply flex flex-col w-[585px] h-[300px] p-6;
}

2. μ»΄ν¬λ„ŒνŠΈ 뢄리 방식

const ModalContent = () => {
  return (
    <div className="modal-container">
      {/* λͺ¨λ‹¬ λ‚΄μš© */}
    </div>
  );
};

 

 

ν•™μŠ΅ν•œ 점

 

  1. Tailwind CSS의 JIT 컴파일러 λ™μž‘ 방식에 λŒ€ν•΄ 이해함
  2. λŸ°νƒ€μž„κ³Ό μ»΄νŒŒμΌνƒ€μž„μ˜ 차이가 μŠ€νƒ€μΌ μ μš©μ— λ―ΈμΉ˜λŠ” 영ν–₯을 νŒŒμ•…ν•¨
  3. 동적 μ»΄ν¬λ„ŒνŠΈμ˜ μŠ€νƒ€μΌλ§ μ‹œ κ³ λ €ν•΄μ•Ό ν•  사항듀을 배움

πŸ’‘ κ²°λ‘ 

 

μ»΄ν¬λ„ŒνŠΈ 뢄리 방식이 κ°€μž₯ ꢌμž₯됨

  • μž¬μ‚¬μš©μ„± 증가
  • Tailwind 클래슀 κ·ΈλŒ€λ‘œ μ‚¬μš© κ°€λŠ₯
  • μœ μ§€λ³΄μˆ˜ 용이

 

마치며

 

λ¬Όλ‘  ν˜„μž¬ ν”„λ‘œμ νŠΈ μƒν™©μœΌλ‘œ μΈν•΄μ„œ 인라인 μŠ€νƒ€μΌμ„ μž„μ‹œμ μœΌλ‘œ μ‚¬μš©ν•˜κΈ°λ‘œ ν–ˆμ§€λ§Œ

λ‚˜μ€‘μ— μœ„μ—μ„œ μ •λ¦¬λœ ν•΄κ²° 방법을 ν†΅ν•΄μ„œ μ‹€μ œλ‘œ ν”„λ‘œμ νŠΈμ— 녹여보도둝 ν•΄λ΄μ•Όκ² μŒ