일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- LeetCode
- Database
- 안드로이드
- Data Structure
- 자바
- DP
- BFS
- 동적 계획법
- 프로그래머스
- network
- Graph
- 알고리즘
- TypeScript
- Python
- Redux
- vscode
- java
- frontend
- 다이나믹 프로그래밍
- CS
- 백준
- 리트코드
- Javascript
- Algorithm
- VIM
- DFS
- react
- db
- git
- 그레이들
Archives
- Today
- Total
늘 겸손하게
React - 클래스형 컴포넌트, 함수형 컴포넌트 차이점 본문
서론
React 컴포넌트를 선언하는 방식은 두 가지가 있다.
하나는 클래스형 컴포넌트, 다른 하나는 함수형 컴포넌트이다.
두 가지 방식의 차이를 알아보자
목차
- 선언 방식 차이
- state 선언, 사용 차이
- Props 호출 차이
1. 선언 방식 차이
클래스 컴포넌트
- 컴포넌트 시작에 class 키워드 필요
- React.Component 상속
- render() 메소드 필요
함수형 컴포넌트
- return문 내부에서 JSX 작성
비교
2. state 선언, 사용 방식
클래스형 - 선언 방식
- constructor 내부에서 this.state를 통해
1
2
3
4
5
6
7
8
9
10
11
|
class Sample extends Component {
constructor(props) {
super(props);
this.state = {
sample: true,
data: []
};
}
}
|
cs |
클래스형 컴포넌트의 생성자(constructor)는 반드시 super(props)를 호출해야함
- constructor 없이
1
2
3
4
5
6
|
class Sample extends Component {
state = {
sample: true,
data: [],
}
}
|
cs |
클래스형 - 사용 방식
- this.setState 메소드로 state의 값을 변경할 수 있다.
함수형 - 선언 방식
함수형 컴포넌트에서 state 사용은 불가했지만 React 16.8.0부터 React Hook을 통해 사용 가능해졌습니다
- useState hook을 사용한다.
함수형 - 사용 방식
React Hook인 useState를 호출하면 배열이 반환되는데,
첫 번째 원소는 현재 state, 두 번째 원소는 현재 state를 변경할 수 있는 메소드
위 예시에서는 sample이 state 변수, setSample이 sample값을 변경하는 메소드
3. Props
클래스형
- this.props를 통해 값을 불러온다
함수형
- props없이 매개변수로 불러올 수 있다
'Programming > React' 카테고리의 다른 글
React - 제어 컴포넌트와 비제어 컴포넌트의 차이 (0) | 2022.07.22 |
---|---|
React - props와 state 차이 (0) | 2022.07.22 |
Redux - 왜 Redux를 사용하나요? (0) | 2022.07.18 |
React - 왜 React를 사용하는가? (0) | 2022.07.17 |
React - Virtual DOM과 작동원리 (0) | 2022.07.17 |