Props
Props: properties(속성)의 줄임말
- 컨테이너가 변수들의 값을 넘겨 주는 것으로 읽기 전용 데이터
- 부모 → 자식 방향으로만 전달됨
- 자식은 props를 수정할 수 없음 (immutable)
- 컴포넌트에게 “설정값” 또는 “입력값”을 주는 역할
import React from 'react';
import PropsComp1 from './PropsComp1';
import PropsComp2 from './PropsComp2';
import PropsComp3 from './PropsComp3';
const PropsContainer = () => {
const name = "아엘"
const age = 23
return (
<div>
<PropsComp1 name={name} age={age} />
<PropsComp2 name={name} age={age} />
<PropsComp3 name={name} age={age} />
</div>
);
};
export default PropsContainer;
부모 컴포넌트에서 name, age를 정의하고
자식 컴포넌트에서 넘겨준 데이터를 받아 사용
- 객체(object)는 JSX내에서는 {key=value} 형태로 가져옴
const PropsComp1 = (props) => {
console.log(props)
const name = props.name // 마침표 접근법
const age = props['age'] // 대괄호 접근법
return (
<div>
<p>
{name}님 환영합니다!
</p>
<p>
곧 {age+1}살이 되시네요
</p>
</div>
);
};
export default PropsComp1;
매개변수로 받은 객체 props에서
마침표(.) 또는 대괄호([]) 로 값을 꺼냄
- 자식 컴포넌트에서는 부모 컴포넌트가 넘겨준 props를 한번에 받아 사용
- React는 단방향 데이터 흐름(one-way data flow)을 갖기 때문에
부모 → 자식 방향으로만 데이터 전달이 가능하고
자식은 그 값을 변경할 권한이 없다
따라서 자식 컴포넌트에서 아래와 같이 수정이 불가능
props.age = 25; // 에러
const PropsComp2 = (props) => {
// 구조 분해 할당
const {name, age} = props
console.log(props)
return (
<div>
<p>
{name}님 환영합니다!
</p>
<p>
곧 {age+1}살이 되시네요
</p>
</div>
);
};
export default PropsComp2;
props를 매개변수로 받고 함수 내부에서 구조 분해 할당
- 필요한 키만 깔끔하게 추출 가능
- 코드가 깔끔해지고 반복되는 props. 사용 없이
사용하는 props 항목을 한눈에 볼 수 있음
const PropsComp3 = ({name, age}) => {
// 들어올 때 구조분해 할당이 되기 때문에 바로 가져다 쓰면 된다
console.logr({name, age})
return (
<div>
<p>
{name}님 환영합니다!!!
</p>
<p>
곧 {age+1}살이 되시네요
</p>
</div>
);
};
export default PropsComp3;
함수의 매개변수에서 바로 구조분해 할당
-> React에서 가장 자주 사용되는 패턴
- 간결하고 props 객체 자체를 거의 사용할 일이 없을 때 유용
- console.log(props)처럼 전체 props 객체를 확인하기 어려움
-> 필요하면 console.log({name, age})같이 찍어야 함
예제
| foodList를 PropsComponent4.jsx 파일을 만들어 Props로 값을 넘기고, 콘솔에 모든 값을 하나씩 출력하기 |
const PropsContainer = () => {
const foodList = ['김치찌개', '된장찌개', '고추장찌개']
return (
<div>
<PropsComp4 foodList={foodList} />
</div>
);
};
export default PropsContainer;
부모 컴포넌트에서 foodList를 정의하고
key=value 형태로 데이터 전달
const PropsComp4 = ({foodList}) => {
console.log("log " + foodList)
foodList.forEach((food) => console.log("forEach " + food))
for (let food of foodList){
console.log("for문 " + food)
}
return (
<div>
<p>
메뉴판: {foodList}
</p>
</div>
);
};
export default PropsComp4;
자식 컴포넌트에서 props를 받아와
함수의 매개변수에서 바로 구조분해 할당
콘솔에 반영
forEach, let of 형태로 다양하게 출력 가능

https://developernew.tistory.com/431
리액트 React 설치방법 feat. VS Code
React란? React 리액트- 복잡한 사용자 인터페이스(UI)를 쉽게 구축하기 위해 페이스북에서 제작한 자바스크립트 기반의 라이브러리- 싱글 페이지 애플리케이션이나 모바일 애플리케이션 개발에 주
developernew.tistory.com
https://developernew.tistory.com/432
React 리액트 기본 개념 + 기초 용어 + 화면구성 및 설정
React 기본 개념 React란? - 복잡한 사용자 인터페이스(UI)를 쉽게 구축하기 위해 페이스북에서 제작된 자바스크립트 기반의 라이브러리 - 싱글 페이지 애플리케이션이나 모바일 애플리케이션 개발
developernew.tistory.com
https://developernew.tistory.com/433
React 리액트 - 기본 함수, 컴포넌트의 연산
React 리액트 기본 함수 jsx를 App.js에서 사용하기 위해기본 함수 const와 =>를 사용하고문서를 내보내기 위해 하단에 export를 사용한다 function 함수를 사용하는 방법도 동일하며하단에 export를 사용하
developernew.tistory.com
https://developernew.tistory.com/434
React 리액트 - 변수 표현, 삼항연산자
jsx에서의 변수 표현 const Jsx03 = () => { const name = "아엘" const age = "23" const gender = "여" const intro = `이름: ${name} | 나이: ${age} | 성별: ${gender}` return ( {intro} )}export default Jsx03; jsx에서 쓰는 표현은 키보드
developernew.tistory.com
'Frontend > React' 카테고리의 다른 글
| React 리액트 - 맵(Map) (0) | 2025.12.10 |
|---|---|
| React 리액트 - 상태(state) (0) | 2025.12.10 |
| React 리액트 - 변수 표현, 삼항연산자 (0) | 2025.12.07 |
| React 리액트 - 기본 함수, 컴포넌트의 연산 (1) | 2025.12.07 |
| React 리액트 기본 개념 + 기초 용어 + 화면구성 및 설정 (0) | 2025.12.07 |