„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > React Basics~Render Performance/ useTransition

React Basics~Render Performance/ useTransition

Veröffentlicht am 08.11.2024
Durchsuche:847
  • Angenommen, wir zeigen eine große Anzahl von Daten an, beispielsweise 10.000 Daten. Dann kommt es häufig zu einer Verzögerung beim Eingeben des nächsten Werts in das Eingabefeld.

  • Wenn wir in diesem Fall einen Wert eingeben, zeigt der Bildschirm gefilterte Daten an.

  • Ein Problem, das jedoch auftritt, ist die Verzögerung bei der Anzeige der nächsten Aktion, z. B. der Eingabe des nächsten Werts in das Eingabefeld, aufgrund der Verarbeitung zu vieler Daten.

・src/Example.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;
  • Um das Problem zu lösen, können wir die Funktion setFilterVal mit einer startTransition umschließen.
  const changeHandler = (e) => {
    startTransition(() => {
      setFilterVal(e.target.value);
    })
  };
  • Die startTransition verzögert die Ausführung einer Funktion.

  • Dank dieser Funktion können wir problemlos zum nächsten Wert im Eingabefeld wechseln.

・Vor der Eingabe
React Basics~Render Performance/ useTransition

・Nach der Eingabe
React Basics~Render Performance/ useTransition

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/kkr0423/react-basicsrender-performance-usetransition-c7d?1 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3