Middleware
middlewarePage.whatIs.title
middlewarePage.whatIs.description
middlewarePage.custom.title
middlewarePage.custom.description
// Logger middleware
const logger = (config) => (set, get, api) =>
config(
(...args) => {
console.log(' applying', args)
set(...args)
console.log(' new state', get())
},
get,
api
)
// Usage
const useStore = create(
logger((set) => ({
count: 0,
increment: () => set((state) => ({ count: state.count + 1 })),
}))
)middlewarePage.combining.title
middlewarePage.combining.description
import { create } from 'zustand'
import { devtools, persist } from 'zustand/middleware'
const useStore = create(
devtools(
persist(
(set) => ({
count: 0,
increment: () => set((state) => ({ count: state.count + 1 })),
}),
{ name: 'counter-storage' }
)
)
)middlewarePage.builtin.title
persist
middlewarePage.builtin.persist
devtools
middlewarePage.builtin.devtools
immer
middlewarePage.builtin.immer
subscribeWithSelector
middlewarePage.builtin.subscribe