「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Reactの基本~レンダリングパフォーマンス/ useTransition

Reactの基本~レンダリングパフォーマンス/ useTransition

2024 年 11 月 8 日に公開
ブラウズ:339
  • 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 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3