"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Conceptos básicos de React ~ Rendimiento de renderizado/useTransition

Conceptos básicos de React ~ Rendimiento de renderizado/useTransition

Publicado el 2024-11-08
Navegar:224
  • Supongamos que estamos mostrando una gran cantidad de datos, como 10 mil datos, a menudo hay un retraso en la introducción del siguiente valor en el campo de entrada.

  • En este caso, cuando ingresamos un valor, la pantalla muestra datos filtrados.

  • Pero entonces, un problema que ocurre es el retraso en mostrar la siguiente acción, como ingresar el siguiente valor en el campo de entrada, debido al manejo de demasiados datos.

・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;
  • Para resolver el problema, podemos ajustar la función setFilterVal con startTransition.
  const changeHandler = (e) => {
    startTransition(() => {
      setFilterVal(e.target.value);
    })
  };
  • startTransition retrasa la ejecución de una función dentro de ella.

  • Gracias a esta función, podemos pasar fácilmente al siguiente valor en el campo de entrada.

・Antes de ingresar
React Basics~Render Performance/ useTransition

・Después de la entrada
React Basics~Render Performance/ useTransition

Declaración de liberación Este artículo se reproduce en: https://dev.to/kkr0423/react-basicsrender-performance-usetransition-c7d?1 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3