"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > React 기본~렌더링 성능/ useTransition

React 기본~렌더링 성능/ useTransition

2024-11-08에 게시됨
검색:513
  • 10,000개와 같은 많은 수의 데이터를 표시한다고 가정하면 입력 필드에 다음 값을 입력하는 데 지연이 발생하는 경우가 많습니다.

  • 이 경우 값을 입력하면 화면에 필터링된 데이터가 표시됩니다.

  • 그런데 너무 많은 데이터를 처리하여 입력 필드에 다음 값을 입력하는 등 다음 동작을 표시하는 데 지연이 발생하는 문제가 발생합니다.

・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 에서 복제되었습니다.1 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3