use-immer
zustand
use-immer | zustand | |
---|---|---|
8 | 248 | |
3,731 | 42,708 | |
1.6% | 2.1% | |
3.6 | 8.8 | |
7 months ago | 1 day ago | |
TypeScript | TypeScript | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
use-immer
-
A cure for React useState hell?
The use-immer package additionally provides a useImmerReducer ****function that allows you to make state transitions via direct mutation, but under the hood creates an immutable copy using Proxies in JavaScript.
-
Zustand vs Jotai vs Valtio? Which state management library do you prefer created by the same team?
Apply useImmer to the top component state and the dream is complete.
-
Copying the contents of an existing array to a new array
If you want to use mutating code while ensuring that the final update is immutable, I recommend checking out useImmer (and useImmerReducer) - it uses immer to track mutations and do them immutably for you.
-
Handling Objects in React Component State
If you find yourself using multiple objects or in your state, it may be worth it to install a library like immer. Immer provides a proxy object, referred to as a draft, so while your code appears similar to a direct mutation of state, a copy is created under the hood when an update when immer is used.
-
Writing useState for each state variable or writing usestate once and use an object
useImmer is also pretty nice too - useReducer is definitely the way if you only want specific ways to manipulate the object though (and useImmerReducer can make writing the logic for that easier too)
-
How to update state of type object array with setstate hook?
Within the component itself, I used a useImmer hook for the state, as it lets me write mutating code while ensuring that the actual update is immutable - but if you're only holding your array in the useState hook, a shallow clone would work fine. js setItems(items => arrayMove([...items], ...params))
-
Electron Adventures: Episode 54: Notebook state management with useImmer
React is a lot more strict, and for what we need we cannot leave the state in individual components, we need to pull it up to the App component. Making modifications to deeply nested state is a lot of nasty code, fortunately React world has a solution - immer and its hooks version useImmer.
- How to handle Immutability in React? (Immer Library to rescue)
zustand
-
How to optimise React Apps?
For our case, points 1 and 2 can help us provide a better way of handling updates in our rapidly updating application. I have used zustand for the application.
-
React Server Components Example with Next.js
Daishi Kato, creator of Zustand and Jotai, says there are a few things we need to support RSC serialization:
-
A Comprehensive Guide to React State Management
Zustand
-
Best Next.js Libraries and Tools in 2024
Link: https://zustand-demo.pmnd.rs/
- 5 Alternatives to Redux for React State Management
-
Beyond Redux - MobX and Zustand
For more code examples visit the documentation here
-
Simple & Elegant State-Management with Zustand
Have you ever wanted to learn state-management but it felt so overwhelming to get started with Redux? Or maybe you're already using Redux but don't want to take the burden anymore? If so, you might want to take a shot at Zustand! Its an amazing state management library that's easy to get started and maintain in a long run. In this post, we'll dive into creating & sharing stores with this tiny Redux alternative.
-
Get out of state management hell with automatic revalidation
You add the current user state to a React Context or state management library, read from it on the top bar, and write to it after a user signs in. Done. No big deal, right?
-
Redux 101
Zustand
-
What's the optimal approach for persisting data using Zustand in nextjs?
I tried using skipHydration inside my zustand store based on their docs, then rehydrating it inside my modal. So far im getting the same errors. https://github.com/pmndrs/zustand/blob/main/docs/integrations/persisting-store-data.md
What are some alternatives?
Immer - Create the next immutable state by mutating the current one
redux-toolkit - The official, opinionated, batteries-included toolset for efficient Redux development
MobX - Simple, scalable state management.
redux - A JS library for predictable global state management
xstate - Actor-based state management & orchestration for complex app logic.
react-query - 🤖 Powerful asynchronous state management, server-state utilities and data fetching for TS/JS, React, Solid, Svelte and Vue. [Moved to: https://github.com/TanStack/query]
Recoil - Recoil is an experimental state management library for React apps. It provides several capabilities that are difficult to achieve with React alone, while being compatible with the newest features of React.
redux-devtools-extension - Redux DevTools extension.
SWR - React Hooks for Data Fetching
react-hook-form - 📋 React Hooks for form state management and validation (Web + React Native)
rtk-query - Data fetching and caching addon for Redux Toolkit