Sobes.tech
Назад к вопросам
Middle
6

С какими хуками приходилось работать в функциональных компонентах? Какой самый необычный?

Компании, где спрашивали
Тензор

Ответ от нейросети

sobes.tech AI

В функциональных компонентах React часто используются следующие хуки:

  • useState — для управления состоянием.
  • useEffect — для побочных эффектов (запросы, подписки).
  • useContext — для доступа к контексту.
  • useRef — для хранения мутабельных значений и доступа к DOM.
  • useMemo и useCallback — для оптимизации производительности.

Самый необычный хук, с которым приходилось работать, может быть useImperativeHandle. Он позволяет настраивать экземпляр, который будет доступен родительскому компоненту через ref. Это полезно, когда нужно контролировать, какие методы или свойства доступны извне, особенно при работе с обертками над DOM-элементами или сторонними библиотеками.

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

import React, { useImperativeHandle, forwardRef, useRef } from 'react';

const FancyInput = forwardRef((props, ref) => {
  const inputRef = useRef();

  useImperativeHandle(ref, () => ({
    focus: () => {
      inputRef.current.focus();
    }
  }));

  return <input ref={inputRef} {...props} />;
});

// Родительский компонент может вызвать метод focus:
// const ref = React.createRef();
// <FancyInput ref={ref} />
// ref.current.focus();