Pour connecter les composants React au magasin Redux à l'aide de la fonction connect()
de la bibliothèque react-redux
, vous suivez ces étapes:
Importer connect
: Tout d'abord, vous devez importer la fonction connect
à partir de react-redux
:
<code class="javascript">import { connect } from 'react-redux';</code>
Définissez mapStateToProps
et mapDispatchToProps
: ces fonctions sont facultatives mais couramment utilisées. mapStateToProps
prend l'état du magasin et renvoie un objet d'accessoires pour votre composant. mapDispatchToProps
prend la fonction dispatch
et renvoie un objet de créateurs d'action lié à dispatch
.
<code class="javascript">const mapStateToProps = (state) => { return { // Example props todos: state.todos, }; }; const mapDispatchToProps = (dispatch) => { return { // Example action addTodo: (text) => dispatch(addTodo(text)), }; };</code>
Utilisez connect
pour envelopper votre composant : vous utilisez connect
pour envelopper votre composant, en passant par mapStateToProps
et mapDispatchToProps
comme arguments. Cela crée un nouveau composant connecté au magasin Redux.
<code class="javascript">const ConnectedComponent = connect( mapStateToProps, mapDispatchToProps )(YourComponent);</code>
Exporter le composant connecté : Enfin, vous pouvez exporter ce nouveau composant connecté à utiliser dans d'autres parties de votre application.
<code class="javascript">export default ConnectedComponent;</code>
En suivant ces étapes, votre composant React sera en mesure de recevoir des données du magasin Redux et de répartir les actions au magasin, permettant un flux de données unidirectionnel typique dans les applications Redux.
L'utilisation connect()
pour lier les composants React avec le magasin Redux offre plusieurs avantages clés:
connect()
, vous pouvez préciser de manière déclarative les données dont votre composant a besoin dans le magasin, simplifiant le processus de gestion de l'état dans votre application.connect()
implémente shouldComponentUpdate
dose sous le capot, ce qui peut aider à optimiser les performances de votre application en empêchant les redevateurs inutiles lorsque l'État change, mais les accessoires pertinents ne l'ont pas fait.connect()
simplifie comment l'état est passé par les composants, réduisant le forage des accessoires et facilitant la gestion des interactions complexes de l'état.connect()
sont plus faciles à tester car vous pouvez se moquer du magasin Redux et tester le composant isolément, avec des états et des actions prédéfinis. mapStateToProps
et mapDispatchToProps
sont des fonctions cruciales dans la fonction connect()
qui servent des fins spécifiques:
MapStateToProps : cette fonction prend tout l'état du magasin Redux comme son premier argument et renvoie un objet. Les clés de cet objet deviennent les accessoires qui sont transmis à votre composant. Essentiellement, il mappe des parties de l'état Redux vers les accessoires de votre composant, permettant à votre composant de s'abonner aux modifications d'état. Par exemple:
<code class="javascript">const mapStateToProps = (state) => { return { todos: state.todos, }; };</code>
Dans cet exemple, chaque fois que l'état du magasin Redux change, mapStateToProps
fonctionne, et si l'état todos
a changé, il passera ces nouvelles données todos
en tant qu'accessoire au composant connecté.
MapDispatchToprops : Cette fonction prend la fonction dispatch
de la boutique Redux comme son argument et renvoie un objet avec des créateurs d'action sous forme de valeurs. Ces créateurs d'action, lorsqu'ils sont appelés, envoient des actions à la boutique Redux. Les clés de l'objet deviennent les accessoires de votre composant. Par exemple:
<code class="javascript">const mapDispatchToProps = (dispatch) => { return { addTodo: (text) => dispatch(addTodo(text)), }; };</code>
Ici, addTodo
devient un accessoire sur le composant connecté, qui peut être appelé comme this.props.addTodo(text)
dans le composant, en répartissant l'action addTodo
au magasin.
L'utilisation connect()
avec Redux peut avoir un impact sur les performances des applications React de manière positive et négative:
Impacts positifs :
connect()
implémente en fonction shouldComponentUpdate
automatiquement. Cela signifie que les composants connectés ne renforcent pas que lorsque les parties pertinentes de l'État (telles que déterminées par mapStateToProps
) ont en fait changé, améliorant potentiellement les performances en réduisant les redevateurs inutiles.connect()
peut simplifier le flux de données à travers votre application, en réduisant la nécessité de transmettre profondément les accessoires à travers l'arborescence des composants et ainsi en améliorant éventuellement l'efficacité du rendu des composants.Impacts négatifs potentiels :
mapStateToProps
sont optimisées et ne déclenchent pas par inadvertance les redesseurs peuvent devenir difficiles, affectant potentiellement les performances si elles ne sont pas gérées correctement. Pour atténuer ces impacts, les développeurs peuvent utiliser des techniques telles que la mémorisation avec reselect
pour mapStateToProps
, ou envisager d'utiliser React.memo
pour les composants connectés pour contrôler davantage les redevateurs en fonction des modifications des accessoires. De plus, une conception minutieuse de la structure de l'État et l'utilisation du magasin peuvent aider à gérer efficacement les performances dans des applications plus grandes.
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!