Intro
์๋ ํ์ธ์. ์ด๋ฒ ์๊ฐ์๋ Zustand ์ค์น ๋ฐฉ๋ฒ ๋ฐ ์์ก๋ฅผ ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๊ทธ์ ์ ์์ zustand ๊ฐ ๋ฌด์์ธ์ง ๊ถ๊ธํ์ ๋ถ๋ค์ ์ ํฌ์คํ ์ฐธ๊ณ ๋ถํ๋๋ฆฝ๋๋ค :)
How to install Zustand
Zustand ์ค์น๋ฐฉ๋ฒ์ ์๋์ ๊ฐ์ต๋๋ค. ๊ฐ์ ์ฌ์ฉํ๋ ํจํค์ง ๊ด๋ฆฌ ํด(npm / yarn)์ ๋ง์ถฐ ์ค์นํด์ฃผ์๋ฉด ๋ฉ๋๋ค.
1. npm
npm install zustand
2. yarn
yarn add zustand
Zustand Simple Example
๊ฐ๋จํ ์์ ๋ก ์นด์ดํฐ๋ฅผ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค.
zustand๋ฅผ importํ๊ณ , ์ํ ์ปจํ ์ด๋๋ฅผ ์์ฑํด์ค๋๋ค. ์ปจํ ์ด๋ ์์๋ count, increment(), decrement()์ด ๋ค์ด์์ต๋๋ค.
import create from 'zustand'
const useCounterStore = create((set) => ({
count: 0,
increment: () => set((state) => ({ count: state.count + 1 })),
decrement: () => set((state) => ({ count: state.count - 1 })),
}))
์ดํ Counter ์ปดํฌ๋ํธ์์ ์์ ๋ง๋ค์ด๋์ useCounterStore๋ฅผ ํ์ฉํ์ฌ ์๋์ ๊ฐ์ด ์นด์ดํฐ๋ฅผ ๊ตฌํํ ์ ์์ต๋๋ค. useStore() ํ ์ ์ฌ์ฉํ์ฌ ์ํ๋ฅผ ๊ฐ์ ธ์ค๊ณ , ์ ๋ฐ์ดํธ ํ๋ ๋ชจ์ต์ ๋๋ค.
import React from 'react'
import { useStore } from 'zustand'
const Counter = () => {
const { count, increment, decrement } = useCounterStore()
return (
<div>
<p>Count: {count}</p>
<button onClick={increment}>Increment</button>
<button onClick={decrement}>Decrement</button>
</div>
)
}