- static getDerivedStateFromProps()
- props๋ก๋ถํฐ ์ํ๋ฅผ ๋๊ธฐํ ํ๊ณ ์ ํ ๋ ํธ์ถํ๋ ๋ฉ์๋
- ๋ง์ดํธ ์ดํ์๋ props๋ก๋ถํฐ ์ํ๋ฅผ ์ ๋ฐ์ดํธ ํ ํ์๊ฐ ์์ ๋ ํธ์ถํ๋ค.
- shouldComponentUpdate()
- ์๋ช ์ฃผ๊ธฐ ๋ฉ์๋ ์ค ํ๋
- ์ปดํฌ๋ํธ ์ ๋ฐ์ดํธ(๋ ๋๋ง) ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ค.
- render()
- ์ปดํฌ๋ํธ UI ๋ ๋๋ง์ ์ํํ๋ค.
- getSnapshotBeforeUpdate()
- ์๋ช ์ฃผ๊ธฐ ๋ฉ์๋ ์ค ํ๋
- ์ต๊ทผ์ ๋ ๋๋ง ๋ ๊ฒฐ๊ณผ๊ฐ DOM์ ๋ฐ์๋๊ธฐ ์ง์ ์ ํธ์ถ๋๋ ๋ฉ์๋ ์ด๋ค.
- componentDidUpdate()
- ์๋ช ์ฃผ๊ธฐ ๋ฉ์๋ ์ค ํ๋
- ์ ๋ฐ์ดํธ๊ฐ ์๋ฃ๋ ์ดํ์ ํธ์ถ๋๋ ๋ฉ์๋ ์ด๋ค.
import React, { Component } from 'React'
class MyComponent extends Component {
constructor(props) {
super(props);
// ์ด๊ธฐ ์ํ ์ค์
this.state = {
count : 0,
};
}
shouldComponentUpdate(nextProps, nextState) {
// ์ปดํฌ๋ํธ ์
๋ฐ์ดํธ ์ฌ๋ถ๋ฅผ boolean ํ์
์ผ๋ก ๋๊ฒจ์ค๋ค.
return nextState.count !== this.state.count;
}
render() {
return (
<div>
<p>{this.state.count}</p>
</div>
);
}
getSnapshotBeforeUpdate(prevProps, prevState) {
if (prevState.count < this.state.count) {
return 'count-increased';
}
// ๋ฐํ๋ ๊ฐ์ componentDidUpdate์์ ์ฌ์ฉํ ์ ์์
return null;
}
componentDidUpdate(prevProps, prevState, snapshot) {
if (snapshot === 'count-increased') {
console.log('Count was increased!');
}
}
}
export default MyComponent;
๋ฐ์ํ
'Frontend > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
React | ๋ ๋๋ง ์ฃผ๊ธฐ - ์๋ฌ ์ฒ๋ฆฌ ๋จ๊ณ (Error Handling) (0) | 2023.12.05 |
---|---|
React | ๋ ๋๋ง ์ฃผ๊ธฐ - ์ ๊ฑฐ ๋จ๊ณ (Unmounting) (0) | 2023.12.04 |
React | ๋ ๋๋ง ์ฃผ๊ธฐ - ์์ฑ ๋จ๊ณ (Mounting) (1) | 2023.11.30 |
React | ๋ ๋๋ง ์ฃผ๊ธฐ (2) | 2023.11.29 |
React | ์๋ช ์ฃผ๊ธฐ ๋ฉ์๋(Lifecyle Methods) (0) | 2023.11.28 |