
오늘은 리액트의 상태관리 라이브러리 중 하나인 Zustand에 대해 알아보도록 하겠습니다!
Zustand에 대해 알아보기 전에 상태관리에 대해 알아 보도록 하겠습니다.
상태(state)는 리액트 컴포넌트속 데이터를 의미 합니다.
이러한 상태는 시간에 따라, 사용자와의 상호작용에 따라 업데이트되며, 이렇게 변화하는 상태를 올바르게 반응하게 해주는 관리를 상태 관리라고 합니다.
리액트에서 사용 할 수 있는 가볍고 빠른 상태관리 라이브러리 입니다.

현재 까진 리덕스보다 다운로드 수가 더 적지만, 최근 1년으로 본다면 Zustand가 급격히 성장하고 있습니다.
왜 그럴까요? 너 뭐 되냐 Zustand?!!
결론부터 말하면 뭐 됩니다...ㄷㄷ
이때 store는 애플리케이션의 여러 상태(State)를 중앙에서 관리하는 패턴을 말합니다

npm install zustand

Zustand는 create() 함수를 사용해 전역 상태 store를 만듭니다.
import { create } from "zustand";
const useCounterStore = create((set) => ({
count: 0,
increase: () => set((state) => ({ count: state.count + 1 })),
decrease: () => set((state) => ({ count: state.count - 1 })),
}));
create() : Zustand store를 만드는 함수set : 상태를 업데이트할 때 사용하는 함수count : 전역 상태로 관리할 값increase, decrease : 상태를 변경하는 액션 함수즉, 전역에서 공유 가능한 useState라고 보면 이해가 쉽습니다.
function Counter() {
const { count, increase, decrease } = useCounterStore();
return (
<div>
<h1>{count}</h1>
<button onClick={increase}>+</button>
<button onClick={decrease}>-</button>
</div>
);
}
useCounterStore()를 호출하면 store에 있는 상태와 함수를 가져올 수 있습니다.count 값이 바뀌면 이 컴포넌트만 리렌더링됩니다.function Counter() {
const count = useCounterStore((state) => state.count);
const increase = useCounterStore((state) => state.increase);
return (
<div>
<h1>{count}</h1>
<button onClick={increase}>+</button>
</div>
);
}
오늘은 상태관리 라이브러리중 하나인 Zustand에 알아보았습니다.
Zustand는 작은 프로젝트뿐 아니라, 중간 규모 이상의 프로젝트에서도 큰 힘을 발휘합니다.
글 읽어 주셔서 감사합니다.