reactjs - 呼び出し - redux 使い方



Reduxアクション/レデューサー対直接設定状態 (1)

開発プロセスでは、誰がどのように状態を変えたのを知る必要があることがよくあります。 行動を排出して状態を変異させると、それらの質問に対する回答を保持することができます。

アクションとは、ストアに変更方法を伝える情報のペイロードです。 この情報は、この情報をログに記録し、シリアライズして保存するためのプレーンなjavascriptオブジェクトの形式で表されます。 すべての履歴が「記憶されている」ため、後でデバッグやテストの目的ですべてのアクションチェーンを再生できます。 Redux DevToolsのようなツールと共に、開発プロセスを本当に簡単に、驚くほどにします。 すべてのストアの変更はモニターに記録されるため、各ステップでどのように状態がいつどのように変更されたを確認することができます。 さらに、アクションチェーンを前後に進めることができます。

すべての突然変異を1か所に集中させるもう1つの利点は、状態を制御する方が簡単だということです。 これは、すべての突然変異が厳密な順序で1つずつ起こり、コールバックがアプリケーションの動作を不安定にすることがないことを保証します。 また、いくつかのアクションに共通の機能、つまりミドルウェアを適用する機能を1つの場所に保持することもできます。

私はReduxを初めて使う人です。 私は、アクションとリデューサーの価値を、ストアを直接修正するコンポーネントに対して理解するのが難しいです。

Reduxでは、Reactコンポーネントはストアを直接変更しません。 代わりに、彼らはメッセージを公開するような行動を送ります。 その後、減速機がメッセージサブスクライバのようなアクションを処理し、それに応じて状態を変更します(より正確には新しい状態を作成します)。

私は、pub / sub-likeのやりとりのような相互作用が、コンポーネントが実際に何をしているのかを理解するのを困難にする間接的なレイヤーを追加するように感じます。なぜコンポーネントが新しい状態をReduxストアに直接渡すことができないのですか? this.props.setReduxStateようなものをReactコンポーネントに挿入するのは悪いことでしょうか?

私は、国家自体がなぜ不変である必要があるのか​​(なぜ、 Reduxはグローバルな国家を賞賛していないのですか )の価値を理解し始めています状態の変化。 私の質問は、余分なアクション/レジューサーレイヤーとストアを直接操作することです。





redux