Maison > interface Web > js tutoriel > le corps du texte

Comment les créateurs d'actions Redux doivent-ils accéder à l'état : depuis le magasin ou Thunk ?

Barbara Streisand
Libérer: 2024-10-21 18:48:29
original
434 Les gens l'ont consulté

How Should Redux Action Creators Access State: From Store or Thunk?

Accès à l'état Redux dans les créateurs d'action

Question :

Dans une application Redux, comment peut-on accéder à l'état du magasin global à partir d'un créateur d'action ? Les approches suivantes sont-elles appropriées ?

Approche 1 :

<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>
Copier après la connexion

Approche 2 :

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

    dispatch(anotherAction(items));
  }
}</code>
Copier après la connexion

Réponse :

L'acceptabilité de l'accès à l'état au sein des créateurs d'action est un sujet de débat au sein de la communauté Redux.

Approche 1 :

L'accès à l'état directement via store.getState() est déconseillé car il repose sur le fait que store soit un singleton global. Sur le serveur, où des magasins distincts peuvent exister par requête, cette approche est problématique.

Approche 2 :

Cette approche est préférée car elle utilise le middleware Redux Thunk, qui permet des actions asynchrones et la récupération de l'état du magasin via getState(). Thunk fonctionne de manière transparente à la fois sur le client et sur le serveur et garantit que l'accès à l'état est isolé de l'action spécifique.

Considérations :

  • Point de vue du créateur Redux : L'accès à l'état dans les créateurs d'action peut masquer l'historique des modifications et est généralement déconseillé.
  • Point de vue du responsable Redux : L'utilisation de getState dans thunks est encouragée car elle exploite une fonctionnalité spécialement conçue pour de tels cas d'utilisation. .

En fin de compte, les deux approches peuvent donner les résultats souhaités, mais l'approche 2 est la meilleure pratique recommandée pour éviter les pièges potentiels et maintenir la cohérence entre les environnements.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!