Zustand - woowa-techcamp-2021/store-4 GitHub Wiki
https://velog.io/@augusty/Zustand-๋ฆฌ์กํธ์์์-Redux-์ด๋ ต๊ฒ-์ฐ์ง๋ง์ธ์
https://github.com/pmndrs/zustand
- redux ๋ณด๋ค ๊ฐ๊ฒฐํ๊ฒ ์ฝ๋๋ฅผ ์์ฑํ๊ณ ์ถ๋ค.
- redux ๋ ๋น์ทํ๋ค.
- (Redux devtools ๋ฅผ ํ์ฉํ ์ ์๋ค.)
- ์์ ์ปดํฌ๋ํธ๋ฅผ Provider ๋ก ๊ฐ์ ํ์๊ฐ ์๋ค.
import create from 'zustand'
const [useStore] = create(set => ({
count: 1,
inc: () => set(state => ({ count: state.count + 1 })),
dec: () => set(state => ({ count: state.count - 1 }))
}))
function Counter() {
// state ๋ฅผ ์ฌ์ฉํ๋ ๋ถ๋ถ.
const count = useStore(state => state.count)
return <span>{count}</span>
}
function Controls() {
// ํธ์ถ๋์ด state ๋ฅผ ๋ณ๊ฒฝํ๋ ์ด๋ฒคํธ๋ฅผ ๋ฑ๋กํ๋ ๋ถ๋ถ.
const { inc, dec } = useStore()
return (
<>
<button onClick={inc}>up</button>
<button onClick={dec}>down</button>
</>
)
}
-
์ฅ์ : ๊ฐ๋จํ๋ค.
- store ์ state ๋ฅผ ์ง์ ์ฌ์ฉํ๋ค. (โ props ์ ๋งคํํ ํ์๊ฐ ์๋ค.)
- action ์ ์ ์ํ ํ์ X.
- ๊ทธ๋์ action ์ ๊ตฌ๋ถํ switch case ์ฝ๋๋ฅผ ์์ฑํ ํ์ X.
-
๋จ์ : ํ๊ธ ์๋ฃ๊ฐ ๋๋ฌด ์๋ค.