Выбор ответа Middle Ref и DOM обновлено

Зачем useImperativeHandle

Вопрос

Для чего нужен useImperativeHandle?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Чтобы отдать родителю через ref свой объект с методами. Хук определяет, что увидит родитель в ref.current: например только focus() и scrollIntoView(), а не весь узел.

Варианты ответа

  1. Чтобы вызывать методы дочернего компонента без ref
  2. Чтобы изменение ref.current вызывало рендер родителя
  3. Чтобы отдать родителю через ref свой объект с методамиправильный ответ
  4. Чтобы синхронно читать state ребёнка из родителя

Разбор

Хук определяет, что увидит родитель в ref.current: например только focus() и scrollIntoView(), а не весь узел. Работает он именно через ref. Рендер при изменении ref он не вызывает. Читать state ребёнка из родителя так не принято: данные идут вниз через props, а наверх через колбэки.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме