Repolode
immerjs

immerjs/immer

現在の状態のドラフトを変更するだけで、不変な状態更新を書けるJavaScriptライブラリです。

スター
28,988
フォーク
901
未解決の Issue
46
最終コミット
昨日

これは何?

Immerを使うと、通常の変更操作を書く形で不変な状態を更新できます。現在の状態をドラフトプロキシとして変更すると、元の状態をそのまま保ちながら、新しい不変の状態ツリーを生成します。状態更新のたびに、ネストしたオブジェクトや配列を手作業でコピーする必要がなくなります。

Reduxのreducerをはじめ、不変な更新が必要な状態管理コードで広く使われています。APIの中心となるのは、ベースとなる状態とrecipe関数を受け取るproduce関数です。npmパッケージimmerとして公開されており、ドキュメントはプロジェクトのWebサイトで確認できます。

主な機能

  • 01オブジェクトを手作業でコピーせず、ドラフトを変更して状態を更新できます。
  • 02元の状態を変更せずに、新しい不変の状態を生成します。
  • 03中核となるAPIは、ベースとなる状態とrecipeを受け取るproduce関数です。
  • 04npmパッケージimmerとして公開されています。

ユースケース

  • Reduxのreducerにおける不変な更新を簡潔にする。
  • ReactなどのUIアプリケーションで、深くネストした状態を更新する。
  • 不変なスナップショットを使ったUndo履歴や変更追跡が必要な状態ロジックを書く。

クイックスタート

  1. 1

    インストール方法を確認するには、immerjs.github.io/immer のドキュメントを読んでください

  2. 2

    コントリビュートするには、Gitpod でプロジェクトを開いてください。依存関係のインストールと yarn run start の実行が自動で行われます

トピック

よくある質問

immer とは?
現在の状態のドラフトを変更するだけで、不変な状態更新を書けるJavaScriptライブラリです。 Immerを使うと、通常の変更操作を書く形で不変な状態を更新できます。現在の状態をドラフトプロキシとして変更すると、元の状態をそのまま保ちながら、新しい不変の状態ツリーを生成します。状態更新のたびに、ネストしたオブジェクトや配列を手作業でコピーする必要がなくなります。
immer は無料で使えますか?ライセンスは?
immer は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
immer は今もメンテナンスされていますか?
活発にメンテナンス中。immer の最終コミットは 2026年10月21日 です。
immer は何に使えますか?
Reduxのreducerにおける不変な更新を簡潔にする。 ReactなどのUIアプリケーションで、深くネストした状態を更新する。 不変なスナップショットを使ったUndo履歴や変更追跡が必要な状態ロジックを書く。
immer のインストール方法は?
インストール方法を確認するには、immerjs.github.io/immer のドキュメントを読んでください コントリビュートするには、Gitpod でプロジェクトを開いてください。依存関係のインストールと yarn run start の実行が自動で行われます
immer はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/immerjs/immer

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト