あなたのストアを簡素化!図表入門
7449 ワード
国家管理は、常に反応コミュニティで独断されました.それが最初にリリースされたとき、Reduxは反応生態系の革命的な技術でした.それは、アプリケーションが不変で、問題を解決した世界的な店を持つことを許しましたprop drilling エレガントに.今日まで、それは偉大でスケーラブルであり続けます.
私は何年もreduxと類似した解決を使いました、そして、常に私を悩ませる1つのものはそれを始めるために必要とされるボイラー板の量でした.Redux toolkit ほとんどがボイラープレートの問題を解決するが、優れた解決策と比較したときMobX , MST それはまだ中小規模のプロジェクトの詳細に見えた.
数週間前、私は適切なサイズの書き込み重いリファクションをしたかったcontext より良い解決策への状態、そして当然redux、mobxは心に浮かんだ.しかし、もっとシンプルでエレガントなものが欲しかった.
Zustand 救助に!
ドキュメントで述べられているように、「Zustandは小さくて、速くて、スケーラブルなBlabone状態管理解決です.フックに基づく快適なAPIを持っています.
私は本当にZustandを使用する動機は、それがどのようにそれを開始するためだった簡単だったと偉大な機能のようなtransient updates よく起こる状態変化のためにmemorized selectors , インテグレーションimmer ! アンドベストProviders !!
の基本的なストアの例をZustandを使用して入力しましょう.
インストールスタンド
ストアの作成
コンポーネントの使用法
さて、フックを使っている部品でどのように我々の店を利用できるかを見ましょう!
私たちはまだZustandと表面をひっかいていません.過渡的な更新、immerの統合のような驚くべき機能のトン、セレクタ、非同期アクション、ミドルウェア….そしてリストが続く.私は、彼らがよりよく説明されるのを感じますdocs
うまくいけば、この記事はZustandに簡単な紹介として役立ちます.今まで私は本当にそれを楽しんでいます.
あなたは既にZustandを使用していますか?または私とすべてのことJavaScriptを話すか?Twitterで見つけてください
私は何年もreduxと類似した解決を使いました、そして、常に私を悩ませる1つのものはそれを始めるために必要とされるボイラー板の量でした.Redux toolkit ほとんどがボイラープレートの問題を解決するが、優れた解決策と比較したときMobX , MST それはまだ中小規模のプロジェクトの詳細に見えた.
数週間前、私は適切なサイズの書き込み重いリファクションをしたかったcontext より良い解決策への状態、そして当然redux、mobxは心に浮かんだ.しかし、もっとシンプルでエレガントなものが欲しかった.
Zustand 救助に!
ドキュメントで述べられているように、「Zustandは小さくて、速くて、スケーラブルなBlabone状態管理解決です.フックに基づく快適なAPIを持っています.
私は本当にZustandを使用する動機は、それがどのようにそれを開始するためだった簡単だったと偉大な機能のようなtransient updates よく起こる状態変化のためにmemorized selectors , インテグレーションimmer ! アンドベストProviders !!
の基本的なストアの例をZustandを使用して入力しましょう.
インストールスタンド
yarn add zustand
ストアの作成
import create, { SetState, GetState } from 'zustand';
type CountStore {
count: number;
increment: () => void;
};
const useCountStore = create<CountStore>((set: SetState<CountStore>, get: GetState<CountStore>) => ({
count: 0,
increment: (): void => {
const { count } = get();
set({ count: count + 1 });
}
});
create
二つの引数を与えるset
and get
. The set
関数(あなたは正しい推測)は、setState
クラスベースの反応コンポーネントで.とget
関数は、ストア内の現在の状態にアクセスできます.特に、アクション内の状態にアクセスしたい場合に役立ちます.非常に便利!コンポーネントの使用法
さて、フックを使っている部品でどのように我々の店を利用できるかを見ましょう!
function Counter(): React.ReactElement {
const count = useCountStore(state => state.count);
const increment = useCountStore(state => state.increment);
return (
<div>
<h1>count: {count}</h1>
<button onClick={increment}>+1</button>
</div>
);
}
店自体はセレクターフックとして機能する!きちんとした.することもできますmultiple selects 同じ.const [count, increment] = useCountStore(state => [state.counter, state.increment]);
そして、それは、我々は今余分なボイラープレートコードなしで簡単な店があります.私たちはまだZustandと表面をひっかいていません.過渡的な更新、immerの統合のような驚くべき機能のトン、セレクタ、非同期アクション、ミドルウェア….そしてリストが続く.私は、彼らがよりよく説明されるのを感じますdocs
うまくいけば、この記事はZustandに簡単な紹介として役立ちます.今まで私は本当にそれを楽しんでいます.
あなたは既にZustandを使用していますか?または私とすべてのことJavaScriptを話すか?Twitterで見つけてください
Reference
この問題について(あなたのストアを簡素化!図表入門), 我々は、より多くの情報をここで見つけました https://dev.to/karanpratapsingh/simplify-your-store-a-brief-introduction-to-zustand-250hテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol