개발/🟦 React
[React] 라이브러리 import classNames from 'classnames';
비니_
2025. 4. 24. 19:22
728x90
import classNames from 'classnames';
classnames라는 외부 라이브러리를 불러오는 코드
주로 조건부로 클래스명을 쉽게 조합할 때 사용
=> 특정 조건에 따라 클래스명을 다르게 적용하고 싶을 때 편리
** 설치 필요
// npm
npm install classnames
//yarn
yarn add classnames
** 사용법
기존: <div className={`title-box ${isOpen ? "active" : ""}`}>
라이브러리 사용: <div className={classNames('title-box', { 'active': isOpen })}>
**예시 (기본)
import classNames from 'classnames';
const Box = ({ isActive }) => {
return (
<div className={classNames('box', { active: isActive })}>
상태 박스
</div>
);
};
<Box isActive={false} />
=> isActive가 false라서 class에 active 미출력
<Box isActive />
=> isActive가 true면 active가 붙은 상태의 코드가 출력
** 예시 (여러 조건 사용)
const Notice = ({ isError, isWarning }) => {
return (
<div
className={classNames('notice', {
'notice-error': isError,
'notice-warning': isWarning && !isError,
})}
>
알림 메시지
</div>
);
};
** 예시 (배열처럼 사용)
const Button = ({ size }) => {
return (
<button
className={classNames('btn', {
'btn-sm': size === 'small',
'btn-lg': size === 'large',
})}
>
버튼
</button>
);
};
** 예시 (클래스명 문자열 사용)
const isDark = true;
const isRounded = false;
const className = classNames(
'base-style',
isDark && 'dark-mode',
isRounded ? 'rounded' : null
);
console.log(className); // 'base-style dark-mode'
728x90