Sobes.tech
Back to questions
Junior — Middle
93

Какие хуки в React наиболее эффективны для улучшения производительности компонентов?

Answer from AI

sobes.tech AI

Для улучшения производительности React-компонентов часто используют следующие хуки:

  • useMemo: мемоизация вычислений, чтобы не пересчитывать значения без необходимости.
  • useCallback: мемоизация функций, чтобы не создавать новые функции при каждом рендере и не вызывать лишние перерендеры дочерних компонентов.
  • useRef: хранение мутабельных значений без триггера рендера.

Пример использования useMemo и useCallback:

import React, { useState, useMemo, useCallback } from 'react';

function ExpensiveComponent({ compute, value }) {
  const computedValue = useMemo(() => compute(value), [compute, value]);
  return <div>{computedValue}</div>;
}

function Parent() {
  const [count, setCount] = useState(0);

  const compute = useCallback((num) => {
    // тяжелая функция
    return num * 2;
  }, []);

  return (
    <>
      <button onClick={() => setCount(c => c + 1)}>Increment</button>
      <ExpensiveComponent compute={compute} value={count} />
    </>
  );
}

Использование этих хуков помогает избежать ненужных вычислений и перерендеров, что улучшает производительность.