모든 React 컴포넌트는 동일한 생명주기를 거친다.
mount -> update -> unmountmount: 처음 화면에 추가 될 때update: props나 state가 업데이트 될 때unmont: 컴포넌트가 화면에서 제거 될 때메서드 사용Hook 사용constructor()getDerivedStateFromProps()render()componentDidMount()render() 메서드는 필수적으로 호출되고 나머지는 선택적이다.
제일 처음에 호출됨
컴포넌트 새로 만들 때 마다 생기는 클래스 생성자 메서드
state 초기화나 초기화할 값들에 사용
요소들을 돔에 렌더링하기 직전에 호출됨
초기 props에 기반한 state 설정
props에 있는 값을 state에 넣을 때(동기화 시킬 때) 사용
필수적인 메서드로 HTML을 DOM에 출력함(UI 랜더링)
컴포넌트가 처음 렌더링 된 후에 호출됨
API, setTimeout, setInterver 같은 비동기 작업할 때 사용
setState 호출도 자주 사용됨
state나 props에 변화가 있을 때getDerivedStateFromProps()shouldComponentUpdate()render()getSnapshotBeforeUpdate()componentDidUpdate()render() 메서드는 필수적으로 호출되고 나머지는 선택적이다.
컴포넌트가 업데이트 될 때 가장 처음 호출되는 메서드
초기 props가 변할 때 state에도 변화를 주고 싶은 경우 사용
렌더링을 계속해서 할 것인지 말 것인지 boolean 값으로 return
default 값은 value
컴포넌트가 업데이트 될 때 새로 변화된 것을 함께 다시 랜더링
컴포넌트 변화를 DOM에 반영하기 바로 직전에 호출하는 메서드
업데이트 전 props와 state에 접근 가능한 메서드
업데이트 후라도 업데이트 전 값을 확인 가능
이 메서드 사용시 componentDidUpdate()을 포함해야함 아니면 에러일으킴
컴포넌트 변화가 DOM 업데이트 된 후 호출하는 메서드
업데이트 된 값 처리할 때 사용
componentWillUnmount()
componentDidMount() 역할useEffect의 배열 파라미터가 비었음
처음 render 후에 동작
초기 api 작업을 해줄 수 있음
최초 렌더링 이후에 한번만 실행
useEffect(()=>{
//여기 실행시키고 싶은 함수
},[])
배열을 생략하면 렌더링 할때마다 실행
useEffect(()=>{
//여기 실행시키고 싶은 함수
})
componentDidUpdate() 역할useEffect(()=>{
//여기 실행시키고 싶은 함수
},[state])componentWillUnmount() 역할 useEffect(()=>{
//여기 실행시키고 싶은 함수
return () => {
// 뒷정리 함수 실행
}
},[state])