[react] React 상태관리란?? Redux에 대한 질문

강인호·2022년 10월 10일
0

개인저장

목록 보기
12/87

상태관리를 왜 할까요? 그리고 평소 state 관리는 어떻게 하시나요?

상태관리란 것을 찾아보니 3가지의 종류가 있었다.

다른 컴포넌트와 데이터를 공유하지 않는 지역 상태관리

(form input등)

컴포넌트간 상태관리(상위 컴포넌트에서 하위 컴포넌트로)

그 다음이 redux나 recoil같은 상태관리툴을 이용한 전역 상태관리의 3가지가 있다.

평소에 state관리는 기본적으로 컴포넌트간 상태관리를 주로 사용하였다. (map함수와의 사용성도 용이해서)

전역으로 상태를 관리할만큼의 복잡도가 아니라고 판단했기때문에

++

props Drilling

props Drilling이란 하위 컴포넌트로의 전달만을 위해서 거쳐가는 과정을 props Drilling이라고 한다.

A -> B -> C 의 부모 자식 관계가 있다고 가정했을때 A의 값을 C로 넘겨줘야 하는데 C는 B라는 컴포넌트의

하위 컴포넌트일때, A 에서 B로 넘기고 B는 받아서 사용은 하지 않고 다시 C로 넘길때 이러한 과정이

props Drilling이다.

props Drilling은 컴포넌트의 수나 혹은 그 단계가 많아졌을때 코드가 복잡해질 수 있기때문에

규모가 커진다 싶으면 전역 상태관리를 사용하거나 하는등의 유의점이 있지만

일직선적인 방향을 가지고 있기에 해당 state의 흐름을 따라갈 수 있다는 장점도 있다.

Redux가 무엇인가요, 왜 Redux를 사용하시나요?

Redux란 전역으로 상태관리를 해주는 상태관리 라이브러리중 하나이다.

Redux를 사용하는 이유라는 질문은

왜 전역상태관리를 사용하느냐

왜 상태관리라이브러리중 Redux를 사용하느냐 라는 두가지의 의미로 해석될 수 있을것같은데

1 번에 대한 답은 하나의 공용된 state 보관소를 만들어놓고 거기서 상태를 관리함으로서

어떤 컴포넌트에서든 state값에 접근할 수 있기때문에 컴포넌트 단위가 아주 잘게 나뉘어져있어도

state를 통한 상태관리가 용이하고

2번에 대한 답은 순수함수를 사용하기 때문에 상태관리의 예측이 편하고

redux dev tool이 있어서 디버깅이 용이하다는 점이 있다.

Redux 말고 다른 전역 상태관리 아는 것 하나와 차이점을 말해주세요

개인적으로 한번 사용해보고 싶은 recoil이 있다.

redux는 store라는 중앙보관소에서 상태관리를 하지만 recoil은 Atom이라는 상태단위로 상태관리를 하며 컴포넌트에서

Atom에 구독을 하는 방식이다.

차이점은 redux는 state값이 변경되었을때 change이벤트가 발생하면서 view에서 사용하는 state는 리렌더링이

일어나고 recoil은 Atom을 구독한 컴포넌트만 리렌더링이 일어난다.

또한 recoil은 코드량이 훨씬 적다는 특징이 있다. (써보고 싶은 이유)

0개의 댓글