컴포넌트(Component)가 뭔가요?
앱을 이루는 코드들의 조각!
- 코드가 너무 길어서 코드를 분리하면 이해하기도 쉽고, 오류를 쉽게 찾을 수도 있습니다.
- 컴포넌트 만들지 않아도 코딩할 수 있습니다.
- 하지만 한 파일에 모든 코드가 있으면 너무 보기가 어렵고 복잡합니다.
- 함수처럼 이름을 지정하여 코드를 몰라도 다른 개발자가 쉽게 이해합니다.
- 여러 군데에서 사용하는 반복적인 부분을 재사용 가능합니다. (버튼, 카드 등)
- 적절히 사용하면 성능을 개선할 수 있습니다.
Component 어떻게 만드나요?
function Comp() {
return (
<div>컴포넌트1</div>
)
}
export default Comp;
필요하면 useState 와 같은 훅을 사용합니다.
보여주고 싶은 곳에 다음과 같이 컴포넌트를 보여줍니다.
import Comp from "./Comp";
function App() {
return (
<>
<div>ddd</div>
<Comp />
</>
)
}
컴포넌트(Component)를 이용해보기
기존 코드에 컴포넌트를 적용해보겠습니다
import { useState } from "react";
function App() {
const cities = [
{
name: "서울",
desc: "서울은 인구 너무 많음",
},
{
name: "부산",
desc: "부산은 해운대",
},
{
name: "대구",
desc: "대구 너무 더워",
},
];
const [selectedCity, setSelectedCity] = useState("서울");
return (
<>
<div>
<button
onClick={() => {
setSelectedCity("서울");
}}
>
서울
</button>
<button
onClick={() => {
setSelectedCity("부산");
}}
>
부산
</button>
<button
onClick={() => {
setSelectedCity("대구");
}}
>
대구
</button>
</div>
{cities[0].name === selectedCity && (
<div>
<h2>{cities[0].name}</h2>
<p>{cities[0].desc}</p>
</div>
)}
{cities[1].name === selectedCity && (
<div>
<h2>{cities[1].name}</h2>
<p>{cities[1].desc}</p>
</div>
)}
{cities[2].name === selectedCity && (
<div>
<h2>{cities[2].name}</h2>
<p>{cities[2].desc}</p>
</div>
)}
</>
);
}
export default App;
function Button() {
return (
<button
onClick={() => {
// setSelectedCity("서울"); -> 에러 발생으로 잠시 주석처리
}}
>
서울
</button>
);
}
유익한 글이었습니다.