awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
mweststrate avatar

mweststrate/use-immer

0
View on GitHub↗

Use Immer

use-immer is a React state management utility that provides a custom hook for updating immutable state. It allows for the modification of a temporary draft version of data to calculate the next state transition.

The tool simplifies the management of complex state by enabling direct mutations on a draft, which removes the need to manually copy nested objects or arrays using spread operators. This approach ensures the generation of a new immutable snapshot for predictable state changes.

The library covers capabilities for updating deeply nested state and supports processing state changes through reducers.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Features

  • Custom State Hooks - Provides a custom React hook that integrates immutable state management into the component lifecycle.
  • Immutable Nested Data Manipulation - Enables the modification of data structures directly while maintaining immutability for predictable changes.
  • Functional State Management - Uses a recipe function to calculate the next state based on previous values.
  • Runtime Snapshot Generation - Produces fresh immutable object trees by comparing mutated proxy paths against original state.
  • Proxy-Based Immutability - Wraps state in JavaScript Proxies to intercept mutations and produce new immutable state trees.
  • Mutation-Syntax Immutable Updates - Allows developers to use mutation-style code to create new immutable state snapshots.
  • React Hooks - Integrates immutable state manipulation directly into the React component lifecycle via hooks.
  • Immutable State Hooks - Ships a custom React hook for updating immutable state through temporary draft modification.
  • React State Management - Provides a way to update complex React state without repetitive nested spread operators.
  • Draft-Based State Utilities - Simplifies state updates in functional components by applying mutations to a temporary draft.
  • Immutable State Stores - Provides a mechanism to treat application state as an immutable tree for predictable updates.
  • Path-Based Nested Updates - Simplifies updating deeply nested objects and arrays without manual spread operator copying.
  • Reducer State Management - Supports processing state transitions using reducer functions that operate on temporary drafts.
  • Hook Extensions - State manipulation utility using immutable patterns within hooks.
  • State Management - Use Immer to manipulate state.
4,536 stars·101 forks·TypeScript·MIT·24 views

Star history

Star history chart for mweststrate/use-immerStar history chart for mweststrate/use-immer

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

Frequently asked questions

What does mweststrate/use-immer do?

use-immer is a React state management utility that provides a custom hook for updating immutable state. It allows for the modification of a temporary draft version of data to calculate the next state transition.

What are the main features of mweststrate/use-immer?

The main features of mweststrate/use-immer are: Custom State Hooks, Immutable Nested Data Manipulation, Functional State Management, Runtime Snapshot Generation, Proxy-Based Immutability, Mutation-Syntax Immutable Updates, React Hooks, Immutable State Hooks.

Which projects share features with mweststrate/use-immer?

Projects with overlapping indexed features include: immerjs/use-immer — use-immer is a React hook library that provides an immutable state hook for updating complex state objects. It… ctrlplusb/easy-peasy — Easy-peasy is a React state management library and typed framework that provides a centralized store for managing… effector/effector — Effector is a reactive state management library designed for building complex, event-driven applications. It functions… salesforce/akita — Akita is a JavaScript state management library that provides a system for managing application data and user interface… dustingetz/react-cursor — React Cursor is a state management library for React applications that maintains centralized application state through… diegohaz/constate — Constate is a global state management tool for React designed to minimize unnecessary component re-renders. It…

Projects sharing features with Use Immer

These projects share indexed features with Use Immer. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • immerjs/use-immerimmerjs avatar

    immerjs/use-immer

    4,536View on GitHub↗

    use-immer is a React hook library that provides an immutable state hook for updating complex state objects. It integrates Immer state management into the React component lifecycle, allowing developers to handle state transitions by modifying a draft object rather than manually copying state. The library enables the update of deeply nested data structures without the use of spread operators to copy every level of the state tree. It uses a mutation-based draft approach to ensure that the original state remains untouched while producing a new immutable version of the data. The project covers ge

    TypeScript
    View on GitHub↗4,536
  • ctrlplusb/easy-peasyctrlplusb avatar

    ctrlplusb/easy-peasy

    5,044View on GitHub↗

    Easy-peasy is a React state management library and typed framework that provides a centralized store for managing global application state. It functions as an immutable state store and an async state orchestrator, ensuring end-to-end type safety for state definitions, actions, and derived values. The library distinguishes itself by converting direct mutation syntax into immutable updates to simplify the management of nested data. It includes a mechanism for persisting the state tree to storage and rehydrating it during the application boot process, with the ability to suspend the user interfa

    JavaScripthooksimmerimmutable
    View on GitHub↗5,044
  • effector/effectoreffector avatar

    effector/effector

    4,837View on GitHub↗

    Effector is a reactive state management library designed for building complex, event-driven applications. It functions as a data flow engine that models application logic as a directed acyclic graph, ensuring that state updates propagate automatically through interconnected nodes. By utilizing atomic state updates and declarative unit composition, the library maintains data consistency and provides a predictable execution model for managing application state. The project distinguishes itself through its framework-agnostic architecture, which decouples business logic from user interface implem

    TypeScriptbusiness-logiceffectorevent-driven
    View on GitHub↗4,837
  • salesforce/akitasalesforce avatar

    salesforce/akita

    3,672View on GitHub↗

    Akita is a JavaScript state management library that provides a system for managing application data and user interface state. It utilizes an observable data store and immutable state containers to synchronize data across interfaces, employing an entity state manager to handle flat collections of objects with unique identifiers. The project distinguishes itself through a comprehensive history management system that supports both global application-wide state reversal and granular, per-entity undo and redo functionality. It also includes a client-side data cache with time-to-live settings to pr

    TypeScriptangularjavascriptoop
    View on GitHub↗3,672
Compare all 30 related projects→