리액트 생명주기(Life Cycle)는 리액트 컴포넌트가 생성되고, 업데이트되며, 삭제되는 일련의 과정을 의미합니다.
이 생명주기는 크게 세 가지 단계로 나눌 수 있습니다: 마운트(Mounting), 업데이트(Updating), 언마운트(Unmounting).
각 단계에는 특정 메서드가 실행되며, 이를 통해 개발자는 컴포넌트의 다양한 시점에 특정 작업을 수행할 수 있습니다.
1. 마운트(Mounting)
마운트 단계는 컴포넌트가 처음 DOM에 삽입될 때 발생합니다. 이 과정에서 호출되는 주요 메서드는 다음과 같습니다:
2. 업데이트(Updating)
업데이트 단계는 컴포넌트의 props 또는 state가 변경될 때 발생합니다. 이 과정에서 호출되는 주요 메서드는 다음과 같습니다:
3. 언마운트(Unmounting)
언마운트 단계는 컴포넌트가 DOM에서 제거될 때 발생합니다. 이 과정에서 호출되는 주요 메서드는 다음과 같습니다:
4. 기타
import React, { Component } from 'react';
class MyComponent extends Component {
constructor(props) {
super(props);
this.state = { count: 0 };
console.log('Constructor');
}
static getDerivedStateFromProps(nextProps, prevState) {
console.log('getDerivedStateFromProps');
return null; // 반환된 값이 새로운 state가 됩니다. null을 반환하면 state를 변경하지 않습니다.
}
componentDidMount() {
console.log('componentDidMount');
}
shouldComponentUpdate(nextProps, nextState) {
console.log('shouldComponentUpdate');
return true; // false를 반환하면 업데이트를 하지 않습니다.
}
getSnapshotBeforeUpdate(prevProps, prevState) {
console.log('getSnapshotBeforeUpdate');
return null; // 반환된 값이 componentDidUpdate의 세 번째 인자로 전달됩니다.
}
componentDidUpdate(prevProps, prevState, snapshot) {
console.log('componentDidUpdate');
}
componentWillUnmount() {
console.log('componentWillUnmount');
}
render() {
console.log('render');
return (
<div>
<p>Count: {this.state.count}</p>
<button onClick={() => this.setState({ count: this.state.count + 1 })}>
Increment
</button>
</div>
);
}
}
export default MyComponent;
이 예제에서 각 생명주기 메서드는 컴포넌트의 생명주기 단계에서 언제 호출되는지 콘솔에 로그를 출력합니다. 이를 통해 생명주기 메서드의 호출 순서를 명확하게 이해할 수 있습니다.
요약
리액트 컴포넌트 생명주기는 크게 세 단계로 나눌 수 있습니다: 마운트, 업데이트, 언마운트
마운트는 컴포넌트가 DOM에 처음 삽입될 때 호출되는 메서드
업데이트는 props 또는 state가 변경될 때 호출되는 메서드
언마운트는 컴포넌트가 DOM에서 제거될 때 호출되는 메서드
PRODUCT ID별 상품 가져오기 / 코멘트 가져오기 / 코드 리뷰 (0) | 2024.07.09 |
---|---|
웹 페이지 렌더링 방식: CSR, SSR, SSG 각각의 특징 (0) | 2024.07.05 |
상품등록 페이지 코드리뷰 (1) | 2024.07.05 |
리액트에서 배열을 렌더링할 때 key를 써야 하는 이유 (0) | 2024.06.29 |
리액트 Virtual DOM (0) | 2024.06.29 |