이번 주에는 리액트에 있는 styled component와 만들어본 커스텀 훅들을 사용해보는 시간을 가졌고, react-router-dom, redux등 다양한 추가 라이브러리 사용법에 대해서 배워봤다.
훅들을 공부하면서 Life 사이클에 대해서도 알게 되었다.
리액트 컴포넌트는 각각 Mount → Update → Unmount
의 과정을 거치게 된다.
리액트 생명주기(라이프 사이클)란, 컴포넌트 중심 라이브러리의 집합체라고 보면 된다.
모든 컴포넌트에는 각각의 생명주기가 존재하고 각 생명주기에 맞는 메서드들이 있다.
생명주기는 클래스형 컴포넌트와 많은 관련이 있는데 현재는 함수형 컴포넌트를 대부분 사용하기 때문에 시간을 너무 쏟지 말고 나중에 필요할 때 다시 찾아서 보는 걸 추천!
컴포넌트가 생성될 때를 말한다.
다음과 같은 메서드가 있음..!
constructor
a. 컴포넌트가 맨 처음 만들어 질 때 호출
b. 생성자
getDerivedStateFromProps
a. 부모 컴포넌트로부터 props를 전달 받을 때, state에 값을 일치시키는 역할을 하는 메서드
b. 마운트 될 때, 업데이트(리렌더링) 될 때도 호출'
render
a. 최초 mount가 준비완료 되면 호출되는, 즉 렌더링 하는 메서드
b. 컴포넌트를 DOM에 마운트하기 위해 사용
componentDidMount
a. 컴포넌트가 브라우저에 표시가 된 후 호출되는 메서드
컴포넌트가 갱신될 때를 말한다.
다음과 같은 메서드가 있음..!
getDerivedStateFromProps
a. Mount 과정에서도 동일하게 호출되었던 메서드.
b. 부모 컴포넌트로부터 props를 전달받을 때, state에 값을 일치시키는 역할을 하는 메서드
shouldComponentUpdate
a. 리렌더링 여부 판단(함수 호출 결과 : true / false)
- i. true
인 경우 : 리렌더링 진행
- ii. false
인 경우 : 리렌더링 하지 않음
b. 함수형 컴포넌트에서 memo
, useMemo
, useCallback
이 이 역할을 대신한다.
render
a. 변경사항 반영이 다 되어 준비완료 되면 호출되는, 즉 렌더링 하는 메서드
b. 컴포넌트를 DOM에 마운트하기 위해 사용
getSnapshotBeforeUpdate
a. 컴포넌트에 변화가 일어나기 직전 DOM의 상태를 저장
b. componentDidUpdate 함수에서 사용하기 위한 스냅샷 형태의 데이터
componentDidUpdate
a. 컴포넌트 업데이트 작업 완료 후 호출
컴포넌트가 DOM에서 제거되는 시점을 말한다.
다음과 같은 메서드가 있음..!
React Hook은 리액트의 새로운 기능으로 React 16.8버전에 새로 추가된 기능으로 state, component에 대한 것들을 바꿔놓았다.
예를 들면 function component에서 state을 가질 수 있게 된 것
만일 앱을 react hook을 사용하여 만든다면 class component, render 등을 안해도 된다는 뜻이다.
모든 것은 하나의 function이 되는 것 함수형 프로그래밍이 가능해지는 것
다음 주에는 axios와 json-server를 통해서 간단하게 API 통신을 해보고 데이터를 수정해보는 시간을 갖는다. 추가적으로 redux toolkit의 사용법 또한 배우게 된다.