Create the next immutable state by mutating the current one (by immerjs)


Basic Immer repo stats
7 days ago

immerjs/immer is an open source project licensed under MIT License which is an OSI approved license.

SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives

Immer Alternatives

Similar projects and alternatives to Immer

  • GitHub repo immutable-js

    Immutable persistent data collections for Javascript which increase efficiency and simplicity.

  • GitHub repo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • GitHub repo material-ui

    Material-UI is a simple and customizable component library to build faster, beautiful, and more accessible React applications. Follow your own design system, or start with Material Design.

  • GitHub repo ramda

    :ram: Practical functional Javascript

  • GitHub repo htm

    Hyperscript Tagged Markup: JSX alternative using standard tagged templates, with compiler support.

  • GitHub repo valtio

    💊 Valtio makes proxy-state simple for React and Vanilla

  • GitHub repo TypeScript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • GitHub repo Playwright

    Node.js library to automate Chromium, Firefox and WebKit with a single API

  • GitHub repo husky

    Modern native Git hooks made easy 🐶 woof!

  • GitHub repo react-query

    ⚛️ Hooks for fetching, caching and updating asynchronous data in React

  • GitHub repo normalizr

    Normalizes nested JSON according to a schema

  • GitHub repo SWR

    React Hooks library for remote data fetching

  • GitHub repo react-window

    React components for efficiently rendering large lists and tabular data

  • GitHub repo eleventy 🕚⚡️

    A simpler static site generator. An alternative to Jekyll. Transforms a directory of templates (of varying types) into HTML.

  • GitHub repo fp-ts

    Functional programming in TypeScript

  • GitHub repo html

    HTML Standard

  • GitHub repo twin.macro

    🦹‍♂️ Twin blends the magic of Tailwind with the flexibility of css-in-js (emotion, styled-components, stitches and goober) at build time.

  • GitHub repo rfcs

    RFCs for changes to React (by reactjs)

  • GitHub repo jsx

    monorepo for Babel / Vue JSX related packages

  • GitHub repo jsx-next

    JSX for Vue 3

NOTE: The number of mentions on this list indicates mentions on common posts. Hence, a higher number means a better Immer alternative or higher similarity.


Posts where Immer has been mentioned. We have used some of these posts to build our list of alternatives and similar projects - the last one was on 2021-06-18.
  • Which is the best functional programming library for typescript?
    It's value is less today, than It was a couple of years ago. It solved a lot of issues, that today can be solved in other ways. Immer is one example.
  • Modify Deep State of App | 2021-06-17
    Haha, well, that's why you were suggested to use immer.js or to flatten your state with Normalizr.
  • Separating logic in your Redux Toolkit application | 2021-05-31
    RTK doesn’t mutate the state because it uses the Immer library internally to ensure your state isn’t mutated. Immer detects changes to a “draft state” and produces a brand new immutable state based on your changes.
  • You don't need variables | 2021-05-22
    Luckily for us, there is a great library that allows us to write code as we were doing mutations, but actually produces an immutable copy of the object, and it's called immer. This library allows us to write our updateOtherValue function like this:
  • [AskJS] Why isn't there a simple native method to clone an object in JavaScript?
    What do you need to do that immer won't get you?
  • What is one thing you find annoying about react and are surprised it hasn't been addressed yet? | 2021-05-04
    Generally, attempting to detect object changes is more error-prone that just updating things immutably. For example, Vue uses setters, which results in various gotchas (e.g. array[0] = value won't be detected), and will use Proxy in v3, which is more reliable but impossible to polyfill and can cause performance issues in some cases. Immer also works with proxies. I guess this is subjective, but one of the reasons I like React is that it makes immutable updates completely transparent and doesn't do any brittle change detection magic under the hood.
  • React e Redux em 2021 | 2021-04-26
  • Immer – Copy-on-write immutability for JavaScript | 2021-04-23
  • Have been using Vue.js for a while but decided to learn React because of how popular and demanded it is. Not trying to bash React but I can't get over the funkyness of JSX and a couple of other aspects. Everything seems more complex and cumbersome than how it's done in Vue.js. Am I just biased? | 2021-04-18
  • JavaScript library to efficiently mutate data without changing the original source
    Yes, Immer's docs say it uses "structural sharing": . Specifically, it just leaves existing references as-is if they don't need to be updated.
  • Redux Cool New 2021 Toolkit | 2021-04-14
    reducerTree : It's an Object (can have any deep and nested structure) that intuitively and in readible ways, defines handler functions for reducer. Handler functions as an argument take state and action and update the state. It automatically uses the immer library to do immutable updates with normal mutative code, like = email. There is no need to manually do immutable updates and return the result. If you are not familiar with the immer library, please look at it, it is very important.
  • Frontend: Developer Experience & Software Maintainability | 2021-04-05
    Some other big packages like webpack, babel, and immutable were in my backlog to plan how I could upgrade everything. At that time, we had a team working close to the immutable removal (we're striving to not use any library or immer if an engineer prefers), so I let this library to their team to work on. And we also had a team experimenting with NextJS in some projects, so bumping webpack and babel could not be worthy, so I make this task less of a priority at that time.
  • FicusJS | 2021-03-28
    How does ApplicationState compare to e.g. ?
  • How to display this data from Firestore into my React Native Flatlist
    Also, because `forEach` is creating a side effect, it's more functional and in-line to use `.map()` and create the objects you want to append to your `golfer` hook. I would also recommend using something such as or `use-immer` (the hook for immer) which will give you some more guardrails around this
  • Stop Wasting Your Life Chasing Bugs, With This Simple Kickass Technique.
    It's best to use dedicated libraries to work with immutable state, for example Immer, Immutable.js or Ramda.