Repolode
immerjs

immerjs/immer

一个 JavaScript 库,让你通过修改当前状态的草稿来生成新的不可变状态。

Star
28,988
Fork
902
未关闭 Issue
46
最近提交
6小时前

这是什么?

Immer 让开发者可以用普通的修改式代码来更新不可变状态。所有改动都在当前状态的草稿(proxy)上完成,Immer 会据此生成新的不可变状态树,而原始状态保持不变。这样在更新嵌套对象和数组时,就不必手动逐层复制。

该库常用于 Redux reducer 以及其他需要不可变更新的状态管理代码中。核心 API 是 produce 函数,接收基础状态和一个 recipe 函数,以 npm 包 immer 的形式发布。文档托管在项目官网上。

核心功能

  • 01通过修改草稿来编写状态更新,无需手动复制对象。
  • 02生成新的不可变状态,同时保持原始状态不变。
  • 03核心 API 为 produce 函数,接收基础状态和 recipe 函数。
  • 04以 npm 包 immer 的形式发布。

适用场景

  • 简化 Redux reducer 中的不可变更新逻辑。
  • 更新 React 或其他界面应用中深层嵌套的状态。
  • 通过不可变快照实现需要撤销历史或变更追踪的状态逻辑。

快速上手

  1. 1

    阅读 immerjs.github.io/immer 上的文档以获取安装说明

  2. 2

    如需参与贡献,可在 Gitpod 中打开项目,它会自动安装依赖并运行 yarn run start

标签

常见问题

immer 是什么?
一个 JavaScript 库,让你通过修改当前状态的草稿来生成新的不可变状态。 Immer 让开发者可以用普通的修改式代码来更新不可变状态。所有改动都在当前状态的草稿(proxy)上完成,Immer 会据此生成新的不可变状态树,而原始状态保持不变。这样在更新嵌套对象和数组时,就不必手动逐层复制。
immer 可以免费使用吗?用的什么许可证?
immer 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
immer 还在维护吗?
活跃维护中。immer 最近一次提交是在 2026年10月22日。
immer 适合用来做什么?
简化 Redux reducer 中的不可变更新逻辑。 更新 React 或其他界面应用中深层嵌套的状态。 通过不可变快照实现需要撤销历史或变更追踪的状态逻辑。
immer 怎么安装和运行?
阅读 immerjs.github.io/immer 上的文档以获取安装说明 如需参与贡献,可在 Gitpod 中打开项目,它会自动安装依赖并运行 yarn run start
在哪里获取 immer?
源代码和安装说明在 GitHub 上:https://github.com/immerjs/immer

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目