Recoil과 React-Redux의 직관력 비교

shinetiger·2022년 7월 19일
0

Recoil이 좀더 직관적이다.
그러나 얼만큼 직관적인가? 스스로 설명하고 싶어서 이 글을 쓴다.

알 것같은데 모르는 느낌.
코딩을 3개월 넘게 공부하자 자주 느끼는 것 같다.
이 느낌은 답답한 기분도 불러와서 그 기분을 글을 이용해 환기해보고자 한다.

리코일의 Selecotr가 리덕스의 useSelector 처럼 스토어(상태)값을 변경해준다.

const [text, setText] = useRecoilState(textState);

Redux는 state라는 말을 안쓴다.

프론트엔드를 리액트로 공부하며 가장 많이 듣게 되는말이 상태State 인데 리덕스는 store와 reducer 라는 단어를 사용한다.
state는 매개변수의 명으로만 사용한다.
그러면 크게 신경쓰지 않아도 되지 않느냐? 라고 할 수도 있겠지만..
나는 잘 안된다.

그에반해 리코일은 useRecoilState라는 Hook을 사용해서 직관력을 높였다. 생긴것도 리액트의 useState와 비슷하게 생겨서 알아보기 쉽다.

Toolkit으로 더 헷갈리는 Redux

공부한지 3개월남짓한 짧은 가방끈으로 대략적으로 설명해보자면
(사실과 매우 틀릴 수 있음)

  1. 리덕스는 createSlice라는 훅을 이용하면서도 reducers 라는 것을 만든다. reducers안에는 어떻게 변경할지 작동방식을 넣어둔다.
  2. 그리고 reducer 안에 reducers에 적었던것을 한번 더 적는다.
  3. useSelector로 바뀐 상태값을 누적하는 장소를 한번더 만들어준다.
  4. useDispatch로 reducers에 등록해두었던 작동방식을 실행시킨다.

적는데도 헷갈린다. 왜이렇게 복잡하게 해놓은거지..
지금의 리액트-리덕스는 내가 배운 영상과 너무 다르다(2022년 1월 업로드) Toolkit이라는 기능을 업데이트 했는데, 처음 소감으로는 간편하게 모아놓은..느낌이 먼저 들었다. 그래서 조금만 더 보면 이해를 할 줄 알았는데 읽으면 읽을수로 되려 더 헷갈렸다.
오히려 이전이 코드읽는데 불편해도 이해하는게 어렵지 않았던것 같다. useSelector와 useDispatch의 역할이 Toolkit때문에 더 애매해진 느낌..;

Recoil은 Hooks 명에 따라 하고자 하는바가 명확하다

이거 하나만으로 리코일을 쓸 가치가 충분하다고 생각된다.
단순해서 나같은 사람도 비유하며 쉽게 이해할 수 있다.

profile
의문을 질문으로 바꾸는 개발자

0개의 댓글