"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 > Bases de React ~ Performances de rendu/useTransition

Bases de React ~ Performances de rendu/useTransition

Publié le 2024-11-08
Parcourir:171
  • Supposons que nous affichons un grand nombre de données, par exemple 10 milliers de données, il y a souvent un retard dans l'affichage de la valeur suivante dans le champ de saisie.

  • Dans ce cas, lorsque l'on saisit une valeur, l'écran affiche les données filtrées.

  • Mais ensuite, un problème qui se produit est le retard dans l'affichage de l'action suivante, telle que la saisie de la valeur suivante dans le champ de saisie, en raison de la gestion d'une trop grande quantité de données.

・src/Exemple.js

import { useState } from "react";

const generateDummyItem = (num) => {
  return new Array(num).fill(null).map((item, index) => `item ${index}`);
};

const dummyItems = generateDummyItem(10000);

const Example = () => {
  const [filterVal, setFilterVal] = useState("");

  const changeHandler = (e) => {
      setFilterVal(e.target.value);
  };

  return (
    
      
      {isPending && 
Loading...
}
    {dummyItems .filter((item) => { if (filterVal === "") return true; return item.includes(filterVal); }) .map((item) => (
  • {item}
  • ))}
> ); }; export default Example;
  • Pour résoudre le problème, nous pouvons envelopper la fonction setFilterVal avec une startTransition.
  const changeHandler = (e) => {
    startTransition(() => {
      setFilterVal(e.target.value);
    })
  };
  • La startTransition retarde l'exécution d'une fonction en son sein.

  • Grâce à cette fonctionnalité, nous pouvons facilement passer à la valeur suivante dans le champ de saisie.

・Avant la saisie
React Basics~Render Performance/ useTransition

・Après la saisie
React Basics~Render Performance/ useTransition

Déclaration de sortie Cet article est réimprimé à: https://dev.to/kkr0423/react-basicsrender-performance-usetransition-c7d?1 S'il y a une violation, veuillez contacter [email protected] pour le supprimer.
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