"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Pourquoi devriez-vous éviter les fonctions fléchées ou les liaisons dans les accessoires JSX ?

Pourquoi devriez-vous éviter les fonctions fléchées ou les liaisons dans les accessoires JSX ?

Publié le 2024-11-08
Parcourir:547

Why Should You Avoid Arrow Functions or Binding in JSX Props?

Pourquoi utiliser les fonctions fléchées ou la liaison dans les accessoires JSX est un non-non

Lors de l'utilisation de React, il est important d'éviter d'utiliser les fonctions fléchées ou liaison dans les accessoires JSX. Cette pratique peut entraîner des problèmes de performances et un comportement incorrect.

Mauvais performances

L'utilisation de fonctions fléchées ou de liaisons dans les accessoires JSX force la recréation de ces fonctions à chaque rendu. Cela signifie que :

  • L'ancienne fonction est supprimée, déclenchant le garbage collection.
  • Le rendu continu de nombreux éléments peut entraîner une instabilité des performances.
  • Les composants s'appuyant sur PureComponents ou ShouldComponentUpdate déclenche toujours des rendus en raison de la modification de la fonction de flèche.

Incorrect Comportement

Considérez l'exemple suivant :

onClick={() => this.handleDelete(tile)}

Ce code créera une nouvelle fonction sur chaque rendu, ce qui oblige React à marquer le composant comme sale et à déclencher un nouveau rendu. Même si l'accessoire de tuile n'a pas changé, le composant sera restitué car la fonction de la flèche est différente.

Bonnes pratiques

Pour éviter ces pièges, utilisez l'option bonnes pratiques suivantes :

  • Lier le gestionnaire d'événements dans le constructeur :
constructor(props) {
  super(props);
  this.handleDelete = this.handleDelete.bind(this);
}
  • Créez une fonction de flèche en dehors de la méthode de rendu :
const handleDelete = tile => {
  // Handle delete logic
};

Remarque supplémentaire :

Il est important de noter que les fonctions fléchées conviennent parfaitement lorsqu'elles sont utilisées dans d'autres parties du composant, comme dans la méthode de rendu. Cependant, ils doivent être évités lors de l'attribution de gestionnaires d'événements aux accessoires JSX.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3