Sobes.tech
Senior

¿Cómo memoizar un bloque JSX estático dentro de un componente sin extraerlo en un componente separado? ¿Qué matriz de dependencias se necesita?

sobes.tech AI

Respuesta de la IA

Чтобы замемоизировать статичный JSX-блок внутри компонента без вынесения в отдельный компонент, можно использовать хук useMemo из React.

Пример:

import React, { useMemo } from 'react';

function MyComponent() {
  const staticBlock = useMemo(() => (
    <div>
      <h1>Статичный заголовок</h1>
      <p>Этот блок не зависит от пропсов и состояния.</p>
    </div>
  ), []); // Пустой массив зависимостей

  return (
    <div>
      {staticBlock}
      {/* Другой JSX */}
    </div>
  );
}

Здесь массив зависимостей пустой ([]), так как блок статичен и не зависит от внешних данных. Это гарантирует, что JSX-блок будет вычислен один раз при монтировании компонента и не будет пересоздаваться при ререндере.