Configure Context with a useReducer state management pattern.
This combo will give you a simple state management pattern that can be used in any React application.
Set up types if you’re using TypeScript
Set up your reducer
Set up your context
This is very much a boilerplate to get you started. Very important, if you’ve got a large application and need global stores, look at other solutions like Zustand or Jotai, they do a much better job at reducing unnecessary re-renders. This pattern should wrap small parts of a application, such as a form experience or in a Micro Context pattern.
You can customise the ContextState
type to include computed
values which you’ll compute using a useMemo
or inline in the Provider
. You can also add additional props to the Provider
to determine the initial state, remember to store these values for later use in the RESET
action.
Also also, rename these functions/types/files to be more specific to your use case. I’ve used State
and Actions
as generic names, but you should be more specific to your use case.