\(@^0^@)/
[알리미 4] recoil을 사용한 전역 상태 관리 본문
728x90
❗ 쉽지만은 않은 Recoil
https://www.npmjs.com/package/recoil-persist
기본의 프로젝트에서 token을 전역 상태로 관리하기 위해서 recoil을 추가하였음.
recoil을 사용한 이유는 리덕스를 사용한다면 기존의 코드를 엄청 많이 엎어야 해서 시간이 많이 지연될 거란 생각이 컸고,
recoil이 최근에 인기 급상승 중이며, 리덕스보다 훨씬 쉽고 간편하다는 의견들이 많아서 어떤 라이브러리인지 사용해보고 싶어서 recoil로 결정하였다.
확실히 페이스북에서 만든 라이브러리라서 그런지 간결하고 기존의 익숙한 코드로 쉽게 구현할 수 있었지만,
내가 구현했던 디렉터리 구조랑 충돌이 있어서 코드를 적용하는 부분에서 조금 애먹었다ㅠ
하지만 redux를 추가했더라면, 아마 3배는 더 오래 걸리지 않았을까 라는 생각이 있긴 하다.
import { useRecoilState } from "recoil";
import { setAuth } from "context/recoil";
const Login = () => {
const [authed, setAuthed] = useRecoilState(setAuth);
console.log(authed);
기존의 docs에서는 useState같이 배열 안에 [authed, setAuthed]로 적용해주어야 하는데,
나중에는 모르겠지만, Login 컴포넌트에서 fetch 한 res들을 setAuthed에 넣고 authed를 딱히 불러올 필요가 없어서
사용하지 않고 있다.. 그렇기에 [setAuthed]만 사용하고 싶은데 그렇게 하면 또 error가 발생하여 그러지 못하고 있는 상황.
authed를 어느 부분에 집어넣어야 할지 고민이 된다.
728x90
'프로젝트&웨비나 회고 > 개인 프로젝트' 카테고리의 다른 글
[알리미 6] 프로젝트 업그레이드 2 : Router v6, 401 Error, RefreshToken (0) | 2022.09.16 |
---|---|
[알리미 5] 프로젝트 업그레이드 1 : Added roles, Updated files tree (0) | 2022.09.13 |
[알리미 3] 서버 연결 (0) | 2022.09.05 |
[알리미 2] 끊긴 서버를 위한 대책 (0) | 2022.08.30 |
[알리미 1] 리팩터링 전, 추가할 사항들을 정리해보자. (0) | 2022.08.29 |