☀️ 기상시간 - 8:00
🌕 마감시간 - 24:00
import React, { Component } from 'react';
class Counter extends Component {
state = {
number: 0
}
constructor(props) {
super(props);
console.log('constructor');
}
componentWillMount() {
console.log('componentWillMount (deprecated)');
}
componentDidMount() {
console.log('componentDidMount');
}
shouldComponentUpdate(nextProps, nextState) {
// 5 의 배수라면 리렌더링 하지 않음
console.log('shouldComponentUpdate');
if (nextState.number % 5 === 0) return false;
return true;
}
componentWillUpdate(nextProps, nextState) {
console.log('componentWillUpdate');
}
componentDidUpdate(prevProps, prevState) {
console.log('componentDidUpdate');
}
handleIncrease = () => {
const { number } = this.state;
this.setState({
number: number + 1
});
}
handleDecrease = () => {
this.setState(
({ number }) => ({
number: number - 1
})
);
}
render() {
console.log('render');
return (
<div>
<h1>카운터</h1>
<div>값: {this.state.number}</div>
<button onClick={this.handleIncrease}>+</button>
<button onClick={this.handleDecrease}>-</button>
</div>
);
}
}
export default Counter;
1) constructor로 component 초기생성
2) componentWillMount : 컴포넌트가 여러분의 화면에 나가나기 직전에 호출되는 API
3) componentDidMount : 컴포넌트가 화면에 나타나게 됐을 때 호출
4) componentWillReceiveProps : 컴포넌트가 새로운 props 를 받게됐을 때 호출
5) shouldComponentUpdate
6) render함수 호출