카테고리 없음
컴포넌트(Component) - 클래스 VS 함수
yunajoe
2022. 12. 21. 19:17
함수형 컴포넌트(Function Component) VS 클래스형 컴포넌트(Class Component)
<클래스형 컴포넌트>
1. class 키워드 필요
2. Component로 상속을 받아야한다.
3. render() 메소드가 반드시 필요하다.
4. state, lifeCycle 관련 기능사용이 가능하다.
5. 함수형보다 메모리 자원을 더 사용한다.
6. 임의 메소드를 정의할 수 있다.
import {Component} from 'react';
import PropTypes from 'prop-types';
class MyComponent extends Component{
render(){
const {name, favoriteNumber, children} = this.props; // 비구조화 할당
return(
<div>
안녕하세요 제 이름은 {name} 입니다. <br />
children 값은 {children}
<br />
제가 좋아하는 숫자는 {favoriteNumber}
</div>
);
}
}
MyComponent.defaultProps = {
name: '기본 이름'
};
MyComponent.propTypes = {
name: PropTypes.string,
favoriteNumber: PropTypes.number.isRequired
}
export default MyComponent;
< 함수형 컴포넌트>
1. state, lifeCycle 관련 기능사용 불가능하다. [Hook을 통해 해결]
2. 클래스형보다 메모지 자원을 덜 사용한다.
3. 컴포넌트 선언이 편하다.
import PropTypes from 'prop-types';
const MyComponent =({name, favoriteNumber, children}) => {
return(
<div>
안녕하세요 제 이름은 {name}입니다 <br />
children값은 {children}
<br />
제가 좋아하는 숫자는 {favoriteNumber}입니다.
</div>
);
};
MyComponent.defaultProps = {
name : '기본 이름',
};
MyComponent.propTypes = {
name: PropTypes.string,
favoriteNumber : PropTypes.number.isRequired
}
export default MyComponent;