faq.title
faq.description
faq.categories.general
faq.questions.what-is-zustand.q
faq.questions.what-is-zustand.a
faq.questions.why-use-zustand.q
faq.questions.why-use-zustand.a
faq.questions.zustand-vs-redux.q
faq.questions.zustand-vs-redux.a
faq.questions.bundle-size.q
faq.questions.bundle-size.a
faq.categories.usage
faq.questions.create-store.q
faq.questions.create-store.a
import { create } from 'zustand'
const useStore = create((set) => ({
count: 0,
increment: () => set((state) => ({ count: state.count + 1 })),
}))faq.questions.update-state.q
faq.questions.update-state.a
// Partial update
set({ count: 10 })
// Functional update
set((state) => ({ count: state.count + 1 }))
// Replace entire state
set({ count: 0 }, true)faq.questions.async-actions.q
faq.questions.async-actions.a
const useStore = create((set) => ({
data: null,
loading: false,
fetchData: async () => {
set({ loading: true })
const response = await fetch('/api/data')
const data = await response.json()
set({ data, loading: false })
},
}))faq.questions.selectors.q
faq.questions.selectors.a
// Select specific state
const count = useStore((state) => state.count)
// Shallow comparison for objects
import { shallow } from 'zustand/shallow'
const { a, b } = useStore(
(state) => ({ a: state.a, b: state.b }),
shallow
)faq.categories.advanced
faq.questions.middleware.q
faq.questions.middleware.a
faq.questions.persist-state.q
faq.questions.persist-state.a
faq.questions.devtools.q
faq.questions.devtools.a
faq.questions.typescript.q
faq.questions.typescript.a
faq.categories.troubleshooting
faq.questions.rerender-issues.q
faq.questions.rerender-issues.a
faq.questions.state-not-updating.q
faq.questions.state-not-updating.a
faq.questions.ssr-issues.q
faq.questions.ssr-issues.a
faq.questions.memory-leaks.q
faq.questions.memory-leaks.a
faq.stillHaveQuestions.title
faq.stillHaveQuestions.description