30 open-source projects similar to immerjs/use-immer, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Use Immer alternative.
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 throu
React is a JavaScript library for building user interfaces based on a component-driven architecture and unidirectional data flow.
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
Immer is an immutable state management library for JavaScript that enables the creation of new versions of state trees. It functions as a state container that uses a proxy-based handler to ensure data immutability. The library utilizes a copy-on-write mechanism and a draft-based mutation model. This allows users to write mutating code on a temporary proxy, which the system then uses to produce a new immutable result while keeping the original state unchanged. The project covers immutable state management and complex object cloning to facilitate predictable state transitions. These capabiliti
This project is a React learning resource consisting of starter files and reference projects. It provides a collection of full stack React project templates and component library examples to demonstrate the construction of interactive user interfaces and single page applications. The resource includes a state management guide covering the use of hooks, reducers, and context providers. It features practical implementations for managing local component state, synchronizing global application data, and handling complex state transitions. The material covers full stack web development, including
react-use is a collection of reusable state and effect hooks for managing common logic in React applications. It serves as a comprehensive library for implementing state management patterns and wrapping various browser APIs into consistent hook interfaces. The project provides a specialized toolkit for DOM interaction and browser API integration, allowing components to track element dimensions, manage cookies, and monitor hardware sensors. It includes a suite of animation and timing utilities for physics-based numeric interpolation and frame-synced state updates. Beyond basic state managemen
This project is an implementation of React Server Components, providing a full-stack component architecture that blends server-side rendering with client-side interactivity. It enables the development of web applications where server-only components for data fetching and interactive client components coexist within a single component tree. The system focuses on server-client data orchestration, allowing for the execution of server functions and database mutations across the network boundary. It distinguishes itself through a hybrid component architecture that shifts component execution to the
React is a JavaScript library for building user interfaces through the composition of modular, self-contained components. It employs a declarative programming model where developers describe the desired visual state, and the library automatically manages the underlying document updates and state synchronization. By utilizing a virtual representation of the document, it calculates and applies minimal changes to the browser, ensuring efficient rendering even in complex applications. The library distinguishes itself through a sophisticated scheduling system that manages rendering work in increme
unstated-next is a lightweight state management library for React that shares state and logic across components. It functions as a tool to transform custom hooks into shared state containers, providing a minimalist approach to synchronizing data without the use of complex external state stores. The project uses a provider-consumer pattern to decouple state definition from its usage. It wraps custom hooks into context containers to reduce manual boilerplate, allowing state and methods to be broadcast from a central provider to deeply nested child components. The system supports state containe
Immer is an immutable state management library used to create new versions of data structures. It allows the production of new state by mutating a temporary draft instead of using manual object spreading. The project implements structural sharing to reuse unchanged parts of a data tree between versions, which reduces memory consumption. It also functions as a JSON patch generator to calculate and output the differences between two state versions. To ensure data integrity, the library includes a state mutation protector that freezes data structures to detect and prevent accidental modificatio
Draft-js is a framework for building customizable rich text editors within React applications. It serves as a state manager for document content and metadata, providing a system to handle text ranges, atomic blocks, and the conversion of HTML strings into structured document formats. The framework enables the creation of interactive editing interfaces that support custom inline styling and configurable block rendering. It includes tools for managing rich media document handling, allowing the integration of non-editable content and metadata into a text stream. The project covers a broad range
Constate is a global state management tool for React designed to minimize unnecessary component re-renders. It functions as a state manager and optimization tool that utilizes specialized contexts to organize shared data across a component tree. The library distinguishes itself through a state-slicing provider pattern, which splits global state into multiple contexts to isolate data dependencies. It includes a state selector system that allows components to extract specific slices of global state, ensuring interface updates only occur when the selected data dependencies change. The project c
Valtio is a proxy-based state management library and reactive state engine that provides a mutable state store. It allows application state to be updated through direct object mutations rather than immutable patterns, using JavaScript proxies to track changes and trigger updates. For React applications, it includes a synchronization hook that ensures components re-render only when the specific properties they access are modified. The system supports reactive data derivation through computed properties that automatically update when their underlying dependencies change. It maintains reactivity
react-basic provides a conceptual implementation of the React model, focusing on a component-based UI architecture. It employs pure functions to transform raw data into structural interface representations and uses a declarative system for managing UI state and hierarchical data distribution. The project distinguishes itself through specialized caching strategies, including tree-based result caching that stores values based on the structural position of elements. It also features a mechanism for deferred function execution to remove boilerplate from business paths and supports the isolation o
Redux Toolkit is a state management toolkit and store configurator designed to simplify the development of Redux applications by reducing boilerplate code. It functions as an immutable state manager and a centralized store configuration system that provides a streamlined workflow for managing global application state. The project distinguishes itself through an automated async action orchestrator that manages the lifecycle of promises by automatically dispatching pending, fulfilled, and rejected actions. It also acts as a normalized state organizer, providing tools to structure complex relati
This is a JavaScript immutable data library used to create objects and arrays that prevent direct mutation. It serves as an immutable state manager and object wrapper designed to ensure data consistency by blocking modifications while remaining compatible with standard JavaScript syntax. The library functions as a converter that transforms standard mutable data into frozen structures and can convert them back for local modifications. This allows for a workflow where data is switched between immutable and mutable versions to perform bulk edits before locking the state again. The project provi
This repository serves as a comprehensive knowledge base and study guide for developers preparing for technical assessments and job screenings focused on React. It provides a structured collection of common industry inquiries and answers designed to build proficiency in the core concepts and patterns required for modern web interface development. The resource covers the fundamental pillars of the library, including component-based architecture, declarative rendering, and unidirectional data flow. It details essential patterns for managing both local and global application state, as well as te
This library provides a collection of strongly typed hooks designed to manage asynchronous tasks, component state, and DOM interactions within user interfaces. It serves as a utility toolkit for tracking data changes, caching asynchronous results, and synchronizing references across both server and browser rendering environments. The project distinguishes itself by offering specialized mechanisms for regulating high-frequency user inputs through debouncing and throttling techniques. It simplifies complex browser interactions, such as keyboard shortcuts, clipboard access, and viewport visibili
usehooks-ts is a comprehensive collection of reusable TypeScript-based hooks designed for managing state, DOM events, and browser API interactions within React applications. It provides a typed library of functions to handle common frontend patterns and side effects. The project distinguishes itself by offering specialized hooks for browser integration, including tools for interacting with the system clipboard, managing local and session storage persistence, and loading external scripts. It also includes utilities for responsive UI development, such as tracking media queries, window dimension
This project is a comprehensive collection of reusable code snippets, custom hooks, and implementation patterns for building user interfaces with React. It serves as a library of short examples designed to solve common development tasks, ranging from state management to DOM integration. The collection provides a wide array of specialized utilities for interacting with browser APIs, including window dimension tracking, media query evaluation, and online status monitoring. It also includes practical guides and snippets for performance optimization, such as memoization, lazy loading, and state c
Zustand is a state management library that provides a centralized store for managing shared application data. It functions as a reactive container that connects application state to components, allowing them to subscribe to specific slices of data and trigger updates automatically. By utilizing selector-based data access and immutable state updates, the library ensures that components only re-render when their observed data changes, maintaining a predictable and efficient data flow. The library distinguishes itself through a pluggable, middleware-based architecture that allows for the extensi
This project is a comprehensive library of reusable React hooks designed to simplify browser API integration, state management, and component lifecycle tracking. It provides a declarative interface for managing complex browser interactions, allowing developers to encapsulate imperative logic into modular, composable functions that integrate directly with the component lifecycle. The library distinguishes itself by offering specialized utilities for asynchronous data orchestration, including built-in caching, retry logic, and loading state management. It also features advanced performance opti
This library provides a collection of reusable hooks designed to manage state, side effects, and browser interactions within React applications. It functions as a toolkit for handling asynchronous data fetching and complex component logic, offering a set of type-safe utilities that reduce boilerplate code and improve maintainability. The library distinguishes itself through its focus on isomorphic lifecycle synchronization, ensuring consistent behavior across client and server environments to prevent hydration mismatches. It employs ref-based closure stabilization to ensure that asynchronous
Dva is a framework for building web applications that integrates React and Redux. It utilizes a model-driven architecture to organize application logic, centralizing state management into cohesive modules that encapsulate reducers, asynchronous effects, and event subscriptions. The framework distinguishes itself through a plugin system that intercepts the action dispatch cycle to automate cross-cutting concerns such as loading state tracking. It also provides a development environment that supports hot module replacement, allowing for the updating of components, routes, and state models in th
This library provides a React component for rendering interactive hierarchical data structures. It is designed to visualize nested information through recursive composition, allowing users to navigate deep data hierarchies by expanding and collapsing branches. The component distinguishes itself by integrating drag-and-drop functionality, enabling users to reorganize nodes directly within the interface. It also supports asynchronous data loading, which fetches child branches on demand to manage remote or deep datasets efficiently. The library includes performance optimizations for large datas
Downshift is a headless UI component library and framework for React that provides the state and interaction primitives necessary to build accessible autocomplete, combobox, and select dropdown components. It functions as a WAI-ARIA UI framework, generating the required ARIA attributes and keyboard event handlers to ensure screen reader compliance without providing any default styling. The library utilizes a headless component pattern to decouple interaction logic from the visual presentation. It manages complex state transitions through reducers and synchronizes internal UI state with extern
Reui is a React UI component library and front-end framework distributed under the MIT license. It provides a collection of reusable, pre-built React components for building modern web application interfaces. The library is built on a component-based architecture that uses declarative rendering through JSX, with state management handled by React Hooks. It employs CSS Modules for scoped styling and Tailwind CSS for utility-first styling, while TypeScript provides static type checking across the codebase. The project organizes components using a file-based structure and uses a module bundler bu
This project is a TypeScript React starter template and frontend development boilerplate. It provides a pre-configured project scaffold and foundation for building type-safe user interfaces, integrating essential tooling for typing, linting, and testing to accelerate the start of a web application. The scaffold distinguishes itself by providing a complete production asset pipeline that generates minified JavaScript and CSS bundles to optimize loading speeds. It includes a dedicated component testing suite for executing logic and snapshot tests in a simulated browser environment, alongside a h
This project is a technical study resource and interview preparation guide focused on the React library. It provides a comprehensive frontend interview question bank and concept references designed to help developers master core library primitives and prepare for professional job interviews. The resource covers detailed explanations of React's technical architecture, including state management patterns, performance optimization strategies, and component design. It serves as a knowledge assessment tool for developers to test their understanding of modern frontend engineering through a structur
This project is a pre-configured foundation for web applications, providing a structured codebase and build tools for starting new frontend projects. It serves as a boilerplate that integrates React for the user interface, Redux for state management, and React-Router for navigation. The architecture is distinguished by its use of nested route definitions to handle hierarchical navigation and a system for dynamic reducer injection, which allows state management logic to be added to the store at runtime as specific modules load. The toolkit covers a broad range of frontend capabilities, includ