리액트를 처음 배우는 입장에서 "컴포넌트는 무엇이고, props는 왜 필요한지"가 혼란스러웠다..
한 번 알아보장
리액트 컴포넌트는 UI(화면)을 만드는 가장 기본적인 단위이다.
function add(a,b) {
return a+b;
}
여기서 입력은 a,b이고, 출력은 두 숫자의 합이다.
function Greeting(props) {
return <h1>Hello, {props.name}!</h1>;
}
예제:
function Greeting(props) {
return <h1>Hello, {props.name}!</h1>;
}
<Greeting name="John" />
여기서:
name="John"은 부모 컴포넌트가 전달한 props
props.name은 Greeting 컴포넌트가 사용하는 데이터
예제:
function Button(props) {
return <button className={props.color}>{props.label}</button>;
}
<Button color="blue" label="Click me" />
<button class="blue">Click me</Button> 엘리먼트를 반환예제:
function Book(props) {
return (
<div>
<h1>{props.title}</h1>
<p>{props.author}</p>
</div>
);
}
<Book title="React Basics" author="John Doe" />
<Book title="Javascript Mastery" author="Jane Smith" />
| 일반 함수 | 리액트 컴포넌트 |
|---|---|
| 단순히 값을 계산하거나 반환 | UI를 반환(리액트 엘리먼트). |
| 데이터나 계산 결과를 반환 | 사용자 인터페이스를 반환 |
| return으로 숫자, 문자열 등 반환. | return으로 JSX 반환. |
컴포넌트와 props가 함께 동작하는 과정
예제 전체 흐름:
function App() {
return (
<div>
<Greeting name="Alice" />
<Greeting name="Bob" />
</div>
);
}
function Greeting(props) {
return <h1>Hello, {props.name}! </h1>;
}
<div>
<h1>Hello, Alice!</h1>
<h1>Hello, Bob!</h1>
</div>
비유 예:
function Fruit(props) {
return <p>This is a {props.type}.</p>;
}
<Fruit type="apple" />
<Fruit type="banana" />