// CSS 스타일링
- 리액트에서 클래스를 설정하기 위해 className prop을 사용한다.
~ className="클래스속성명"
<button className="active">
#examples menu button.active {
background-color: #7925d3;
color: #ebe7ef;
}
// CSS 동적 스타일링
- 조건부로 클래스 속성을 추가할 수 있다.
~ className={조건 ? '클래스속성명' : ''}
- 상위 컴포넌트에서 boolean 값을 전달받아 클래스 속성을 추가할 수 있다.
export default function App() {
return (
<div>
<main>
<section id="examples">
<menu>
<TabButton
isSelected={selectedTopic === 'components'}
onSelect={() => handleSelect('components')}
>
Components
</TabButton>
<TabButton
isSelected={selectedTopic === 'jsx'}
onSelect={() => handleSelect('jsx')}
>
JSX
</TabButton>
<TabButton
isSelected={selectedTopic === 'props'}
onSelect={() => handleSelect('props')}
>
Props
</TabButton>
<TabButton
isSelected={selectedTopic === 'state'}
onSelect={() => handleSelect('state')}
>
State
</TabButton>
</menu>
{tabContent}
</section>
</main>
);
}
export default function TabButton({ children, onSelect, isSelected }) {
return (
<li>
<button className={isSelected ? 'active' : ''} onClick={onSelect}>
{children}
</button>
</li>
);
}
'클라이언트 > React' 카테고리의 다른 글
[리액트(React)] forwarded props(proxy props) (0) | 2024.01.21 |
---|---|
[리액트(React)] Fragments (0) | 2024.01.19 |
[리액트(React)] React 18 버전 변경 및 추가 사항 (0) | 2024.01.11 |
[리액트(React)] styled-components (0) | 2024.01.10 |
[리액트(React)] Context API (0) | 2024.01.09 |