Zustand
Zustand
'zustand'๋ ๋ ์ผ์ด๋ก 'state'๋ผ๋ ๋ปํ๋ค.
๊ฐ์ํ๋ Flux ์์น์ ๋ฐ๋ฅด๋ฉฐ ์๊ณ ํ์ฅ ๊ฐ๋ฅํ ์ต์ํ์ ์ํ ๊ด๋ฆฌ ์๋ฃจ์
Redux์ ๊ต์ฅํ ์ ์ฌํ์ง๋ง ๊ฐ๋ฐ์๊ฐ ์ํ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด Reducer, Actions, Dispatch๋ฅผ ๋ง๋ค์ด์ผํ๋ Redux์ ๋ฌ๋ฆฌ Zustand๋ ๊ต์ฅํ ๊ฐ๋จํ๋ค.
Hooks๋ฅผ ์ฌ์ฉํ์ฌ ์ํ๋ฅผ ๊ด๋ฆฌ
์ฅ์
Boiler plate ์ฝ๋๊ฐ ๊ต์ฅํ ์ ๋ค.
Context Provider๋ฅผ ์ฌ์ฉํ ํ์๊ฐ ์์ด ๋์ฑ ๊ฐ๋จํด์ง๊ณ ๊ฐ๋ ์ฑ์ด ๋์์ง๋ค.
Store ์์ฑํ๊ธฐ
Store๋ Hooks์ผ๋ก ๋์ด์์ผ๋ฉฐ, Store ์์๋ ๊ฐ์ฒด, ํจ์ ๋ฑ ๋ฌด์์ด๋ ๋ฃ์ ์ ์๋ค.
์ ๊ณต๋๋
create
ํจ์๋ฅผ ์ฌ์ฉํ์ฌ Store๋ฅผ ์์ฑset
ํจ์๋ฅผ ํตํด ์ํ๋ฅผ ๋ณ๊ฒฝํ๋ค.
Persist Middleware
์ํ๋ฅผ local storage์ ์ ์ฅํ์ฌ ์๋ก๊ณ ์นจ ํด๋ ๊ฐ์ ์ ์งํ๋๋ก ์ค์ ํด๋ณด์.
Persist Options
name: local storage key๊ฐ์ ์ง์
storage: ์ ์ฅํ ์คํ ๋ฆฌ์ง๋ฅผ ์ง์ ํด์ค ์ ์๋ค. (๋ก์ปฌ ์คํ ๋ฆฌ์ง, ์ธ์ ์คํ ๋ฆฌ์ง)
default ->
createJSONStorage(() => localStorage)
partialize -> ์ ์ฅํ ์ํ์ ์ผ๋ถ๋ง์ ์คํ ๋ฆฌ์ง์ ๊ด๋ฆฌํ ์ง ์ค์ ํ ์ ์๋ค.
onRehydrationStorage -> ์คํ ๋ฆฌ์ง๊ฐ ์ํ๋ ๋ ํธ์ถ๋ ์ฝ๋ฐฑํจ์๋ฅผ ์ง์
merge -> ๋ฏธ๋ค์จ์ด๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์์ ๋ณํฉ์ ์ํ, ํด๋น ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๊น์ ๋ณํฉ์ ์ํํ ์ ์๋ค.
skipHydration -> ๊ธฐ๋ณธ์ ์ผ๋ก ์ด๊ธฐํ์ hydration์ด ์คํ๋๋๋ฐ ํน์ ์ํฉ์ ๊ฒฝ์ฐ ์ฒซ hydration ์๊ธฐ๋ฅผ ์ ์ดํ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ค. ๋จ, ์๋์ผ๋ก
rehydrate()
๋ฅผ ์คํ์์ผ์ฃผ์ด์ผ ํ๋ค.
DevTools
Zustand๋ Redux DevTools๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
Async
zustand๋ ์์ ์ด ๋๊ธฐ์ธ์ง ๋น๋๊ธฐ์ธ์ง ์ ๊ฒฝ์ฐ์ง ์๋๋ค. ์ํ๋ฅผ ๋ณ๊ฒฝํ๋
set
ํจ์๋ฅผ ํธ์ถํ๊ธฐ๋ง ํ๋ฉด ๋๋ค.
Last updated