클래스 컴포넌트의 생명주기
Front-end React생명주기(Lifecycle)란?
컴포넌트의 생명주기는 컴포넌트가 브라우저에 나타나 업데이트 되고, 사라지게 될 때 호출되는 메소드이다.
클래스 컴포넌트 생명주기
componentDidMount()
컴포넌트가 렌더되고 나서 바로 실행된다.
componentDidUpdate()
컴포넌트가 업데이트 되고(i.e. state
업데이트) 수정되어 리렌더될 때 실행된다.
componentWillUnmount()
컴포넌트가 사라질 때 실행된다.
예제
import {Component} from "react";
import Router from "next/router";
export default class ClassCounterPage extends Component {
state = {
count: 0,
};
// 화면이 다 그려지고 나서 실행.
componentDidMount() {
console.log("componentDidMount : 그려지고 나서 실행");
}
// state 업데이트 되고 수정되어 리렌더될 때 실행
componentDidUpdate() {
console.log("componentDidUpdate : 변경되고 나서 실행");
}
// 컴포넌트가 사라질 때 실행하고 끔
componentWillUnmount() {
console.log("componentWillUnmount : 사라질 때 실행");
}
handleClickIncrement = () => {
this.setState((prevState) => ({
count: prevState.count + 1,
}));
};
handleClickMovePage() {
Router.push("/");
}
render() {
return (
<>
<div>현재 카운터 : {this.state.count}</div>
<button onClick={this.handleClickIncrement}>Increment</button>
<button onClick={this.handleClickMovePage}>Exit to main page</button>
</>
);
}
}
- 해당 페이지에 들어가게 되면
componentDidMount : 그려지고 나서 실행
- Increment 버튼을 클릭하면
componentDidUpdate : 변경되고 나서 실행
- Exit 버튼을 클릭하면
componentWillUnmount : 사라질 때 실행
의 콘솔 로그 메세지가 찍힌다.