728x90
반응형
다음 HTML 태그에서 src와 같은 속성을 지정하듯이, 우리가 만든 컴포넌트에 어떻게 속성값을 부여할까?
<img src="image.jpg" width="100" height="100">
Props란 ?
Props는 React에서 Properties의 줄임말로, 리액트는 컴포넌트에 속성값을 Props를 통해서 전달한다 .
React 컴포넌트에서는 props를 통해 부모 컴포넌트에서 자식 컴포넌트로 데이터를 전달할 수 있다.
// App.js
import React from 'react';
import Toast from './components/Toast';
function App() {
return (
<div className="App">
<Toast title="Props 스터디" />
</div>
);
}
export default App;
// Toast.js
const Toast = (props) => {
return (
<div>
<h1>{props.title}</h1>
</div>
);
};
export default Toast;
Toast.js를 import하여 Toast컴포넌트(자식)를 가져오고 props 값으로 title값을 전달.
Props를 쿠키틀에 비유한다면?
Props의 특징
1. 읽기 전용:
- props는 자식 컴포넌트 입장에서 변경이 불가능한 읽기 전용 속성이다. 만약 데이터의 변경이 필요하다면, 부모 컴포넌트에서 변경된 값을 자식에게 전달해야 한다. 자식 컴포넌트는 부모로부터 받은 props를 변경할 수 없으며, 이는 컴포넌트의 예측 가능성을 높이는 중요한 개념이다.
2.부모에서 자식으로 데이터 전달
- props는 부모 컴포넌트가 자식 컴포넌트로 데이터를 전달하는 방식이다.
비구조화 할당 (구조 분해 할당)
ES6에서 도입된 비구조화 할당(구조 분해 할당) 문법을 사용하면, props에서 필요한 값을 더 간편하게 추출할 수 있다.
- 기존 방식:
const Toast = (props) => {
return (
<div>
<h1>{props.title}</h1>
</div>
);
};
- 구조화 할당을 사용한 방식:
const Toast = ({ title }) => {
return (
<div>
<h1>{title}</h1>
</div>
);
};
이 방식은 props.title처럼 매번 props 객체에서 값을 추출할 필요 없이, title 값을 바로 사용할 수 있어 코드를 더욱 간결하게 만든다.
728x90
반응형
'React' 카테고리의 다른 글
[React] 리액트에서 불변성(Immutability) 관리의 중요성과 방법 (0) | 2024.08.21 |
---|---|
[React] State란? (0) | 2024.08.20 |
[React] 리액트 폴더 구조 이해 (0) | 2024.08.10 |
[React] Create React App을 이용해서 리액트 앱 설치하기 (0) | 2024.08.09 |
[React] 브라우저 랜더링 방식 및 가상돔 사용 이유 (0) | 2024.08.06 |