このプロジェクトについて

Zustandは、Reactアプリケーション向けの軽量な状態管理ソリューションです。Reduxなどのライブラリによく付随するボイラープレートを抑えたフックベースAPIを採用しています。 コアコンセプトは、create関数を通じてstoreを作成することであり、これはカスタムReactフックを返します。状態にはプリミティブ、オブジェクト、または関数を格納でき、更新はset関数を通じて不変的に行う必要があります。コンポーネントはstoreの断片を選択して状態を利用し、厳密等価チェックによって選択された値が変更されたときのみ再レンダリングされます。 主な特徴は以下の通りです: - アプリケーション全体をプロバイダーでラップする必要がない - persist(ストレージ)、immer(ミュータブル風の更新)、devtools(デバッグ)などのミドルウェアを内蔵サポート - zustand/vanilla経由で非React用途向けのバニラストアモードも提供 - subscribe関数によりリアクティブでない状態アクセスとリスナーが可能 - useShallowヘルパーにより、複数の状態スライスを選択する際の不要な再レンダリングを防止 - カスタム等値関数を指定し、コンポーネント更新を細かく制御可能 本ライブラリは、zombie childシナリオにおける stale props、Reactの並行性问题、ミックスレンダラー間のコンテキスト損失といった一般的なReactの状態管理の問題に対処します。意見を押し付けすぎない設計でありながら、スライスを通じたコード整理のための実用的なパターンを提供します。