LifeCycle Of React component - Deprecated
리액트 컴포넌트의 라이프사이클
Last updated
// 인자는 자동으로 받습니다. 변화할 Props, 이전 State
static getDerivedStateFromProps(nextProps, prevState) {
// 여기서 특정 if문이나 다른 구문을 통해, Props가 변화했을 때 State를 변화시킬 수 있습니다.
// 만약 변화시킬 것이 없다면 null을 리턴하면 됩니다.
// 변화시킬 State가 있다면 객체 형태로 넘겨 주세요.
// return { b: '15' }
return null;
}
// static 메소드이기 때문에 this. 와 같은 형태로 호출할 수 없습니다. 사용에 신중해야 합니다.componentDidMount() {
// 처음 컴포넌트의 로딩이 끝났을 때 실행되는 메소드 입니다.
// 첫 화면이 구성된 후 DOM 조작이나 API요청 등을 합니다.
}// 변화할 다음 Props와, 변화할 다음 State를 받습니다.
shouldComponentUpdate(nextProps, nextState) {
// 반드시 boolean 형태로 리턴을 해야만 합니다.
// true를 리턴할 시 컴포넌트가 리 렌더링 됩니다.
// false는 렌더링을 막습니다.
// state의 변화가 일어났을 때만 재 렌더링 해주는 모습입니다.
if (this.state !== nextState) {
return true;
}
return false;
}// 이전 Props와 이전 State를 가집니다. this.props와 this.state는 변경된 상태입니다.
// render 메소드가 호출된 직후에 실행됨
getSnapshotBeforeUpdate(prevProps, prevState) {
if (this.props.list.length > prevProps.list.length) {
// 여기서 리턴하는 값이 componentDidUpdate의 3번째 인자로 전달 됩니다.
return 'There is more list';
}
return null;
}// 컴포넌트가 업데이트 된 이후 마지막으로 실행되는 라이프사이클 메소드 입니다.
// 이전 props, 이전 state, getSnapshotBeforeUpdate에서 return 준 값 순서대로 인자가 들어옵니다.
componentDidUpdate(prevProps, prevState, snapshot) {
// Props나 State의 변화를 감지한 후, DOM업데이트를 해야 할 때 주로 사용합니다
// if (this.state !== prevState) {
// this.getNewGraph()
// }
}