취준/Challenge

[Zustand] persist를 사용하여 새로고침 후에도 전역상태를 유지하는 방법

yeoney 2025. 2. 8. 02:22
반응형

 

 

 

React 프로젝트를 하며 전역 상태 라이브러리로 Zustand를 사용하고 있었다.
전역 상태를 사용해야하면서, 새로 고침 후에도 값이 남아있도록 local storage에 값을 저장해야했다. 

 

https://zustand.docs.pmnd.rs/migrations/migrating-to-v4#persist

zustand 공식 문서를 찾아보았더니,  Persist middleware 를 사용하면, 

state 를 local storage 에 저장하여 새로고침 후에도 값이 저장되는 것이었다. 

import { persist } from 'zustand/middleware'

 

 

 

나의 코드 예시를 보자 

import { create } from "zustand";
import { createJSONStorage, persist } from "zustand/middleware";

interface ProjectState {
  projectTitle: string;
  setProjectTitle: (newTitle: string) => void;
}

export const useProjectStore = create(
  persist<ProjectState>(
    (set) => ({
      projectTitle: "Project No.1",
      setProjectTitle: (newTitle) => set({ projectTitle: newTitle }),
    }),
    {
      name: "project-storage", // 상태를 저장할 때 사용하는 키의 이름
      storage: createJSONStorage(() => localStorage), // 상태를 저장할 저장소
    }
  )
);

참고로, 


이렇게 local storage 에 저장하는 방법 외에도 session storage 에 저장할 수도 있다. ! 이때는 직접 storage 를 지정해주면 끝. 

감사합니다

 

 

반응형