«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Основы React~Производительность рендеринга/useTransition

Основы React~Производительность рендеринга/useTransition

Опубликовано 8 ноября 2024 г.
Просматривать:255
  • Предположим, что мы отображаем большое количество данных, например 10 тысяч данных, часто возникает задержка при вводе следующего значения в поле ввода.

  • В этом случае, когда мы вводим значение, на экране отображаются отфильтрованные данные.

  • Но затем возникает проблема с задержкой отображения следующего действия, например ввода следующего значения в поле ввода, из-за обработки слишком большого количества данных.

・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;
  • Чтобы решить эту проблему, мы можем обернуть функцию setFilterVal в startTransition.
  const changeHandler = (e) => {
    startTransition(() => {
      setFilterVal(e.target.value);
    })
  };
  • startTransition делает задержку выполнения функции внутри него.

  • Благодаря этой функции мы можем легко перейти к следующему значению в поле ввода.

・Перед вводом
React Basics~Render Performance/ useTransition

・После ввода
React Basics~Render Performance/ useTransition

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/kkr0423/react-basicsrender- Performance-usetransition-c7d?1. Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить их.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3