[React] Recoil-persist 사용해보기

2023. 2. 3. 20:42·🍞 FrontEnd/React

Recoil을 사용하다가 전역상태가 새로고침 하면 초기화되는 현상이 발생했다. 구글링을 해보니 나랑 똑같은 문제를 겪는 사람들이 많았고, 생각보다 쉽게 해결방법을 얻을 수 있었다. 바로 Recoil-persist 라이브러리를 사용하면 된다.

 

Recoil-persist를 사용하면 이전처럼 새로고침을 해도 recoil state가 날아가지고 않고 sessionStorage 또는 localStorage에 보관된다. 아무런 설정도 해주지 않으면 key는 "recoil-persist", 저장소는 localStorage에 기본적으로 저장된다.

 

✅ Recoil-persist 사용방법

설치

npm i recoil-persist

 

사용법

import { atom } from 'recoil';
import { recoilPersist } from 'recoil-persist';

//1. 아무것도 설정 안 하고 쓰는 경우
//localStorage에 저장되며, key 이름은 'recoil-persist'로 저장됨
const { persistAtom } = recoilPersist();

//2. sessionStorage에 저장하고 싶은 경우
//Next.js를 쓴다면 sessionStorage는 아래와 같이 따로 설정 필요
const sessionStorage = 
      typeof window !== 'undefined' ? window.sessionStorage : undefined

const { persistAtom } = recoilPersist({
  key: '내맘대로 정하는 키 이름',
  storage: sessionStorage,
});

//Recoil-persist를 적용시키려면 아래의 effects_UNSTABLE을 적어주어야 한다.
const myAtom = atom<MyAtomType>({
  key: 'myAtomKey',
  default: myDefaultState,
  effects_UNSTABLE: [persistAtom],
});

 

 

 

저작자표시 (새창열림)

'🍞 FrontEnd > React' 카테고리의 다른 글

[React] useMutation를 활용한 데이터 생성, 수정, 삭제  (0) 2023.02.06
[React] 리페칭(Re-fetching)에 대해서  (0) 2023.02.06
[React] CORS 에러 해결하기  (0) 2023.01.30
[React] react-query Missing queryFn  (0) 2023.01.20
[React] react-hook-form 버전 오류  (0) 2023.01.11
'🍞 FrontEnd/React' 카테고리의 다른 글
  • [React] useMutation를 활용한 데이터 생성, 수정, 삭제
  • [React] 리페칭(Re-fetching)에 대해서
  • [React] CORS 에러 해결하기
  • [React] react-query Missing queryFn
박빵이
박빵이
2025년에도 갓생살기
  • 박빵이
    기억보다 기록
    박빵이
  • 전체
    오늘
    어제
    • 분류 전체보기 (337)
      • 🍞 FrontEnd (97)
        • HTML+CSS (4)
        • JavaScript (17)
        • TypeScript (4)
        • React (52)
        • Next.js (2)
        • Android (15)
      • 🍞 BackEnd (24)
        • Java (15)
        • Node.js (6)
        • Spring (1)
      • 🍞 Cloud & Infra (0)
        • AWS SAA (0)
        • Microsoft Azure (0)
      • 🍞 Algorithm (147)
        • C++ (4)
        • Baekjoon (41)
        • Programmers (97)
      • 🍞 Computer Science (18)
        • 운영체제 (1)
        • 데이터 통신 (6)
        • 네트워크 (6)
        • 데이터베이스 (1)
      • 🍞 대외활동 & 부트캠프 (42)
        • 삼성 청년 SW 아카데미 (1)
        • LG유플러스 유레카 (0)
        • 한국대학생IT경영학회 (1)
        • IT연합동아리 UMC (17)
        • 길벗 블로깅 멘토 (18)
        • IT연합동아리 피로그래밍 (3)
        • 개발 컨퍼런스 (2)
  • 블로그 메뉴

    • Admin
  • 링크

    • GitHub
  • 인기 글

  • 태그

    알고리즘
    프로그래머스
    코틀린
    map
    위상정렬
    umc
    Java
    C++
    Android
    백준
    안드로이드
    level2
    유니온파인드
    길벗 블로깅 멘토링
    level1
    코딩자율학습
    Front
    react
    길벗 블로깅 멘토
    JavaScript
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
박빵이
[React] Recoil-persist 사용해보기
상단으로

티스토리툴바