Когда нужно брать существующий экземпляр

«Когда нужно брать существующий экземпляр» — вопрос из категории Паттерны, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В React лучше использовать существующий экземпляр, когда:

  1. Работаешь с нативными DOM-элементами (например, canvas, video, audio) через ref
  2. Интегрируешь сторонние библиотеки, которые требуют DOM-элемент (например, карты, графики)
  3. Оптимизируешь производительность (избегая лишних пересозданий)

Пример с canvas:

function Canvas() {
  const canvasRef = useRef(null);

  useEffect(() => {
    const ctx = canvasRef.current.getContext('2d');
    // Рисуем на существующем canvas
    ctx.fillRect(10, 10, 100, 100);
  }, []);

  return <canvas ref={canvasRef} />;
}

В этом случае мы не пересоздаем canvas при каждом рендере, а работаем с существующим экземпляром.