DOM и React Senior DOM на практике обновлено

Реакция на изменение размера

Условие

observeWidth(el, onWidth, Observer): вызывает onWidth(ширина) при изменении размера элемента. Верни функцию остановки. Конструктор наблюдателя приходит третьим аргументом.

Что проверяют тесты

  • сообщает ширину

  • понимает современный формат записи

  • остановка отключает наблюдатель

Как подойти

ResizeObserver заменяет слушатель resize у окна: он срабатывает на изменение конкретного элемента, включая случаи, когда окно не менялось (раскрылась боковая панель, поменялся контент). На нём строят контейнерные запросы до появления CSS container queries. Поддержка двух форматов записи - обычная реальность, спецификация менялась.

Подсказки: 2
  1. Запись содержит contentRect в старых браузерах и contentBoxSize в новых.
  2. Наблюдатель обязательно отключать, иначе он держит элемент.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.