반응형
function App() {
const [selected, setSelected] = useState();
function handleSelect(selectedButton) {
...
}
let tabContent = <p>Please select a topic.</p>;
if (selected) {
tabContent = (
...
);
}
return (
<>
<Header></Header>
<main>
<section id="core-concepts">
<h2>Core Concepts</h2>
<ul>
{CORE_CONCEPTS.map((item) => (
<CoreConcept key={item.title} {...item} />
))}
</ul>
</section>
<section id="examples">
<h2>Examples</h2>
<menu>
<TabButton
isSelected={selected === "components"}
onSelect={() => handleSelect("components")}
>
Components
</TabButton>
...
</menu>
{tabContent}
</section>
</main>
</>
);
}
- 이 코드에서 App 컴포넌트 안에 useState()를 사용하고 있고, useState()는 TabButton이 사용하고 있다.
- 이 상태에서 TabButton을 클릭하게 되면 화면 전체(App 컴포넌트)가 재실행된다.
- useState는 함수가 실행될 때마다 이 함수를 포함하는 컴포넌트가 매번 재실행되기 때문이다.
- 업데이트가 필요한 부분만 실행되기 위해 해당 부분을 분리해야 한다.
- 작은 컴포넌트로 잘게 쪼개면 책임을 분할할 수 있다.
반응형
'Dev > React' 카테고리의 다른 글
[React] id 전달하기 (0) | 2024.07.21 |
---|---|
[React] HTML 요소 동적으로 설정하기 (0) | 2024.07.10 |
[React] Fragment(프레그먼트) 사용법 (0) | 2024.07.10 |
[React] 리스트 데이터 동적 출력 (0) | 2024.07.10 |
[React] UI 업데이트 State Hooks (0) | 2024.07.09 |