Dans les applications React utilisant Redux, les crochets useSelector
et useDispatch
sont essentiels pour gérer l'état dans les composants fonctionnels. Voici comment vous pouvez les utiliser:
Hook USTUSELLECTR : Le crochet useSelector
est utilisé pour extraire les données de l'état du magasin Redux. Il vous permet de vous abonner à la boutique Redux et de recevoir des mises à jour automatiquement lorsque l'état modifie. Vous l'utilisez généralement pour lire les données d'état dont vous avez besoin pour votre composant.
<code class="javascript">import { useSelector } from 'react-redux'; function MyComponent() { const count = useSelector(state => state.counter.value); // You can use the 'count' value within your component return <div>{count}</div>; }</code>
Dans cet exemple, useSelector
prend une fonction qui spécifie la partie de l'état que vous souhaitez extraire. Le crochet réévaluera cette fonction de sélecteur chaque fois que l'état pertinent modifie, et votre composant sera rendu avec la valeur mise à jour.
Hook Usedispatch : Le crochet useDispatch
renvoie la fonction dispatch
de la boutique Redux. Vous pouvez l'utiliser pour expédier des actions de vos composants.
<code class="javascript">import { useDispatch } from 'react-redux'; import { increment } from './counterSlice'; function MyComponent() { const dispatch = useDispatch(); return ( <button onclick="{()"> dispatch(increment())}> Increment </button> ); }</code>
Dans ce cas, useDispatch
vous donne accès à la fonction dispatch
, vous permettant d'envoyer des actions au magasin Redux. Lorsque le bouton est cliqué, il envoie l'action increment
, qui déclenche les modifications de l'état en fonction du type et de la charge utile de l'action.
L'utilisation useSelector
et useDispatch
Hooks in Functional Components offre plusieurs avantages par rapport à d'autres méthodes de gestion de l'état avec Redux, telles que Connect () Fonction:
connect()
et ses fonctions MapStateToProps et MapDispatchToproprop. Cela conduit à un code plus concis et lisible.useSelector
a des optimisations de performances intégrées. Il utilise les vérifications d'égalité des références par défaut, ce qui signifie qu'elle ne provoquera pas de redevances inutiles si l'état sélectionné n'a pas changé.useEffect
, useState
, etc., vous permettant de gérer efficacement l'État local et mondial. Vous trouverez ci-dessous un exemple simple démontrant comment configurer et utiliser useSelector
et useDispatch
dans un composant fonctionnel de réact:
<code class="javascript">import React from 'react'; import { useSelector, useDispatch } from 'react-redux'; import { increment, decrement } from './counterSlice'; // Assuming you have a slice defined in counterSlice.js function Counter() { // Extract the current count from the Redux store state const count = useSelector(state => state.counter.value); // Get the dispatch function to dispatch actions const dispatch = useDispatch(); return ( <div> <h2>Counter: {count}</h2> <button onclick="{()"> dispatch(increment())}>Increment</button> <button onclick="{()"> dispatch(decrement())}>Decrement</button> </div> ); } export default Counter;</code>
Dans cet exemple, useSelector
est utilisé pour extraire le count
du magasin Redux, et useDispatch
est utilisé pour obtenir la fonction dispatch
, qui est ensuite utilisée pour expédier des actions increment
et decrement
lorsque les boutons respectifs sont cliqués.
L'utilisation useSelector
et useDispatch
peut avoir un impact significatif sur les performances de votre application React avec Redux de plusieurs manières:
useSelector
optimise les redevateurs en comparant le nouvel état avec l'état précédent en utilisant des vérifications d'égalité peu profondes. Si l'état sélectionné n'a pas changé, le composant ne renvoie pas, ce qui conduit à de meilleures performances.useSelector
s'abonne uniquement aux parties de l'État qui vous intéresse, il peut minimiser la quantité de données qui doivent être recalculées et renvoyées.useMemo
ou useCallback
) en combinaison avec useSelector
pour optimiser davantage les performances. Cela peut empêcher les récalculs et les redevances inutiles.useSelector
et useDispatch
facilitent cette évolutivité sans sacrifier les performances. En résumé, les crochets useSelector
et useDispatch
peuvent améliorer les performances de votre application en optimisant les redevateurs, en fournissant des mises à jour d'état efficaces et en prenant en charge l'évolutivité via un code plus simple et plus maintenable.
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!