classMainComponentextendsReact.Component{render(){return (<><h1>Hello {this.props.name}! </h1><h1>Let's study react version {this.props.version}</h1></> );}}constapp=ReactDOM.createRoot(document.querySelector("#app"));app.render(<MainComponentname="열혈강사"version="18"/>);
name과 version에 해당하는 데이터는 state가 아닌 태그에 작성된 외부 데이터이다. 이를 컴포넌트 내에서는 props 속성으로 접근할 수 있다. 그림으로 보면 다음과 같은 구조이다.
데이터는 모두 문자열로 저장되며, 데이터 유형을 지정하고 싶다면 표현식을 사용해야 한다.
props 표현식 설정
문자열이 아닌 데이터를 property로 설정해야 하는 경우에는 다음과 같이 JSX에 표현식을 작성한다.
실행 결과는 같지만 데이터의 형태를 다르게 인식한다.
props Type 검사
props 표현식 설정 시 원하는 자료형인지 검사할 수 있다. prop-types 의존성이 필요하다.
<!-- development version -->
<script src="https://unpkg.com/[email protected]/prop-types.js"></script>
<!-- production version -->
<script src="https://unpkg.com/[email protected]/prop-types.min.js"></script>
static propTypes = {
name : PropTypes.string,
version : PropTypes.number
};