ホームページ > ウェブフロントエンド > jsチュートリアル > useMemo と useCallback を使用した React アプリの最適化: 完全ガイド

useMemo と useCallback を使用した React アプリの最適化: 完全ガイド

Linda Hamilton
リリース: 2025-01-04 07:25:34
オリジナル
118 人が閲覧しました

Optimizing React Apps with useMemo and useCallback: A Complete Guide

useMemo と useCallback を使用した React アプリの最適化

React アプリケーションでは、特にアプリがスケールするにつれてパフォーマンスが鍵となります。このガイドでは、useMemo と useCallback が React コンポーネントを最適化し、不必要な再レンダリングを回避するのにどのように役立つかを説明します。


React で最適化が重要な理由

React の再レンダリング動作は強力ですが、適切に管理しないとパフォーマンスのボトルネックにつながる可能性があります。 useMemo と useCallback は、これらの問題に対処するために設計された 2 つのフックです。


useMemoとは何ですか?

useMemo は計算結果を記憶し、依存関係が変更された場合にのみ計算を再計算します。

構文:

const memoizedValue = useMemo(() => computeExpensiveValue(a, b), [a, b]);
ログイン後にコピー

例:

React コンポーネントでの高コストの計算を想像してください:

import React, { useMemo } from "react";

function ExpensiveComponent({ a, b }) {
  const expensiveValue = useMemo(() => {
    console.log("Calculating...");
    return a + b;
  }, [a, b]);

  return <div>Result: {expensiveValue}</div>;
}
ログイン後にコピー

useMemo を使用しない場合、a または b が変更されていない場合でも、この計算はレンダリングごとに実行されます。

useCallbackとは何ですか?

useCallback は関数インスタンスを記憶し、依存関係が変更された場合にのみ再作成されるようにします。これは、コールバックを子コンポーネントに渡すときに特に便利です。

構文:

const memoizedCallback = useCallback(() => doSomething(a, b), [a, b]);
ログイン後にコピー

例:

不必要な子の再レンダリングを回避します:

import React, { useCallback } from "react";

function ParentComponent() {
  const handleClick = useCallback(() => {
    console.log("Button clicked!");
  }, []);

  return <ChildComponent onClick={handleClick} />;
}

function ChildComponent({ onClick }) {
  console.log("Child rendered");
  return <button onClick={onClick}>Click Me</button>;
}
ログイン後にコピー

いつ使用するか?

  • **useMemo**: 計算量の多い操作を最適化するため。
  • **useCallback**: props として渡されたときの関数の再作成を防止します。

重要なポイント

  • 最適化する前に必ずアプリケーションのプロファイリングを行ってください。
  • useMemo と useCallback を使いすぎると、不必要な複雑さが増す可能性があります。
  • アプリのパフォーマンスが重要な部分に最適です。

もっと詳しく知る

詳細な説明と実践的な例については、スクリプト バイナリに関する完全なガイドを参照してください。

次は何ですか?

React のヒントやチュートリアルをさらに知りたい場合は、私をフォローしてください!以下のコメントでつながりましょう。

以上がuseMemo と useCallback を使用した React アプリの最適化: 完全ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート