지난 포스트에서 함수형 컴포넌트의 props를 알아봤으니, 이번엔 클래스형 컴포넌트의 props 사용에 대해 알아보겠습니다.
클래스형 컴포넌트
에서 props
를 이용하는 방식은 함수형과 다르지 않습니다.
먼저 비교를 위해 지난 시간에 만든 함수형 컴포넌트
코드를 가져와봤습니다.
import React from 'react';
import PropTypes from 'prop-types';
const PropsPractice = ({data, children}) => {
return (
<div>
props 익히기=> {data} <br />
컴포넌트 사이의 내용 => {children}
</div>
);
};
PropsPractice.defaultProps = {
data: "기본으로 설정된 값입니다."
};
PropsPractice.propTypes = {
data: PropTypes.string.isRequired,
};
export default PropsPractice;
위 함수형 코드를 클래스형 컴포넌트
코드로 수정해보겠습니다.
import React, {Component} from 'react';
import PropTypes from 'prop-types';
class PropsPracticeClass extends Component {
render() {
const {data, children} = this.props;
return (
<div>
props 익히기=> {data} <br />
컴포넌트 사이의 내용 => {children}
</div>
);
}
}
PropsPracticeClass.defaultProps = {
data: "기본으로 설정된 값입니다."
}
PropsPracticeClass.propTypes = {
data: PropTypes.string.isRequired,
};
export default PropsPracticeClass;
클래스형 컴포넌트
의 특징으로 defaultProps
와 propTypes
의 설정 과정에서 함수에 외부에 선언했던 함수형과는 다르게 class 내부에서 선언이 가능하다는 특징이 있습니다. 위의 코드를 class 내부에서 선언한 방식으로 바꿔보겠습니다.
import React, {Component} from 'react';
import PropTypes from 'prop-types';
class PropsPracticeClass extends Component {
static defaultProps = {
data: "기본으로 설정된 값입니다."
};
static propTypes = {
data: PropTypes.string,
};
render() {
const {data, children} = this.props;
return (
<div>
props 익히기=> {data} <br />
컴포넌트 사이의 내용 => {children}
</div>
);
}
}
export default PropsPracticeClass;
이렇게 클래스형 컴포넌트에서 props를 사용하는 방법을 알아보았습니다.