ホームページ  >  記事  >  ウェブフロントエンド  >  作成者が動作中の Redux ストアの状態にアクセスする方法: 直接か Redux サンクか?

作成者が動作中の Redux ストアの状態にアクセスする方法: 直接か Redux サンクか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-21 18:50:03379ブラウズ

How to Access Redux Store State in Action Creators: Direct vs. Redux Thunk?

Action Creator での Redux ストア状態へのアクセス

Redux でアクションを作成する場合、グローバル ストア状態にアクセスする必要が生じる場合があります。この記事では、これを実現するための 2 つのアプローチについて説明します。インポートされたストア変数を介して状態に直接アクセスする方法と、Redux Thunk ミドルウェアを利用する方法です。

状態に直接アクセスする

<code class="javascript">import store from '../store';

export const SOME_ACTION = 'SOME_ACTION';
export function someAction() {
  return {
    type: SOME_ACTION,
    items: store.getState().otherReducer.items,
  }
}</code>

このアプローチは、ストアがモジュールからエクスポートされたシングルトンであることに依存します。技術的には機能しますが、リクエストごとに個別のストアが必要になるサーバー側のレンダリングが複雑になるため、お勧めできません。

Redux Thunk の使用

<code class="javascript">export const SOME_ACTION = 'SOME_ACTION';
export function someAction() {
  return (dispatch, getState) => {
    const {items} = getState().otherReducer;

    dispatch(anotherAction(items));
  }
}</code>

Redux の使用サンク ミドルウェアを使用すると、getState 関数を介してストア状態にアクセスできます。このアプローチは、クライアント環境とサーバー環境の両方でシームレスに動作するため、推奨されます。

考慮事項

アクション作成者での getState の使用については、さまざまな意見があります。キャッシュされたデータがチェックされるか、認証ステータスが検証されるシナリオに限定されるべきだと主張する人もいます。サンクで getState を使用することは許容されると主張する人もいます。

最終的に、最良のアプローチはアプリケーションの特定のニーズによって異なります。アクションは簡潔であることが理想ですが、アクション作成者で状態に直接アクセスすることが正当化される場合もあります。

以上が作成者が動作中の Redux ストアの状態にアクセスする方法: 直接か Redux サンクか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。