[React] react에서 className 여러 개 사용하는 방법
react 개발하면서 className을 여러 개 적용하고 싶을 수 있다. 해당 게시글에서는 1개의 컴포넌트에 className 여러 개 적용하기, 상황에 따라 className 적용하기 이다.
# className 적용하기
간단하게 className을 적용할 수 있는 npm module clsx이 있다. 먼저 설치해주자.
명령어 yarn add clsx or npm install clsx
사용 방법은 매우 간단하니 훑어만 보자.
className 여러 개 적용하기
styles.title styles.margin styles.color 이렇게 css class 3개가 있다고 가정하자. 해당 class를 하나의 div에 적용한 코드를 확인해보자.
<div className={clsx(styles.title, styles.margin, styles.color)}>
</div>
clsx 함수에 class를 콤마(,)로 이어 작성하면 끝이다.
상황에 따라 className 적용하기
상황에 따라 css를 다르게 적용해야한다고 가정해보자. count가 1인 경우 styles.red, count가 2인 경우 styles.yellow, count가 3인 경우 styles.blue className을 적용하는 코드이다.
<div className={clsx({
[styles.red]: count === 1,
[styles.yellow]: count === 2,
[styles.blue]: count === 3,
})}>
</div>
{ [className 명] : 조건 } 으로 작성해주면 된다.
위 2경우 같이 사용하기
기본 class를 적용하고 나머지는 상황에 따라 적용하고 싶을 수 있다. 이해가 안될 수 있는데 예를들어 styles.bold는 항상 적용되어 있고 상황에 따라 styles.red, styles.blue를 적용해야 한다고 가정하자. 아래와 같이 작성할 수 있다.
<div className={clsx(styles.bold, {
[styles.red]: Boolean(red),
[styles.blue]: !Boolean(red)
})}>
</div>
위와 같이 사용할 수 있다. 큰 어려운 내용은 없으니 쉽게 사용할 수 있을 것이다.
마지막
해당 내용은 틀릴 수도 있다는 것을 감안하여 봐주세요. 틀린 내용 및 오탈자 수정 요청 환영입니다.
'기타 (+ Legacy) > Legacy' 카테고리의 다른 글
[테스트 코드 - Jest] Jest 설치 및 셋팅 (0) | 2022.03.02 |
---|---|
[React] input onChange 함수 확장성 있게 사용하기 (0) | 2022.01.15 |
[Legacy][React] 중요한 변수는 state로 관리하자 (useState) (0) | 2021.11.05 |
[Legacy][React] React 꾸미기 (material-ui 연동) (0) | 2021.11.04 |
[Legacy][React] CRA를 이용하여 React 프로젝트 생성하기 및 기본 설정 (절대경로) (0) | 2021.11.03 |