zustand는 독일어로 상태
라는 뜻을가진 상태 관리 라이브러리이다
zustand의 특징으로는 작은 패키지 용량과, 쉬운 사용 방법 그리고 곰돌이가 귀엽다는 장점이 있다
패키지 용량
다른 상태 관리 라이브러리와 비교해 봤을때 상당이 작은 용량이다 - recoil > mobx > zustand
쉬운 사용 방법
나는 zustand를 동아리 프로젝트에서 사용하는것을 보고 사용해 봤는데 사용해 봤는데 사용하기 너무 쉬웠다
곰돌이
말 그대로 귀엽다 :)
이제 한번 사용 방법을 알아보자
사실 너무 간단하다!
store 생성하기
import { create } from "zustand";
export const useCountStore = create((set) => ({
count: 0,
increase: () => set(({ count }) => ({ count: count + 1 })),
}));
create 함수를 사용해서 만들 수 있다
create 함수의 인자로는 함수를 받고 인자로 받은 함수는 객체를 리턴해야 한다
객체 안에는 만들고 싶은 state와 set 키워드를 사용한 state 업데이트 메서드를 만들수 있다
위에 있는 코드를 보면 나는 간단한 counter를 만들기 위해서 count라는 state를 만들었고
count의 값을 증가시키는 increase 메서드를 만들었다
store 사용하기
import { useCountStore } from "./countStore";
function App() {
const { count, increase } = useCountStore();
return (
<div>
<h1>count : {count}</h1>
<button onClick={increase}>+1</button>
</div>
);
}
store를 사용할때는 만들었던 store를 그대로 함수로 사용해 사용하면 된다!
state 업데이트 하기
store를 생성할때 같이 state를 업데이트하는 메서드를 만들 수도 있지만 따로 만들어 줄 수도 있다
import { useCountStore } from "./countStore";
export const increase = useCountStore.setState((state) => ({ count: state.count + 1 }));
이렇게 setState를 사용해서 state를 업데이트하게 만들 수 있다
근데 나라면 상황에 따라 다를지 모르겠지만 굳이 따로 안만들고 store를 만들때 같이 만들것 같다
마무리
zustand에 대해 알아보았는데 생각보다 배우기 쉽고 사용하기 간편해서 왜 사용하는 사람이 많아지고 있는지 알게 된거 같다
나중에 내가 프로젝트에 도입할 일이 생긴다면 따로 정리해서 블로그를 작성해보겠다
'Library' 카테고리의 다른 글
제발 디자인 못하면 mui 쓰세요! - mui 사용기 (0) | 2024.06.21 |
---|---|
zod 쓸까? 말까? - zod를 알아보자 (0) | 2024.04.22 |
동화책 읽고 개발자 경험 향상시키기 - storybook에 대해 알아보자 (0) | 2024.04.13 |
왜 js는 오류가 안뜨냐? - eslint에 대해 알아보자 (0) | 2024.04.11 |
천재의 form 관리법 (0) | 2023.11.18 |