Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Специализация

Python Backend Developer

Java Backend Developer

Node.js Backend Developer

Golang Backend Developer

React Frontend Developer

Посмотреть все

Выберите навыки

React

React

JavaScript

JavaScript

Git

Git

Redux

Redux

Webpack

Webpack

Посмотреть все

Сложность

1-3

4-6

7-8

9-10

Рейтинг вопросов

1

2

3

4

5

Подпишись на React Developer в телеграм

Вопросы React Frontend Developer


Какие особенности имеют хуки useEffect и useLayoutEffect?

useEffect выполняется асинхронно после рендеринга, что позволяет обновлять DOM без блокировки отображения. useLayoutEffect, напротив, выполняется синхронно сразу после изменения DOM и перед его отображением, что позволяет производить измерения или манипуляции с элементами. Это может быть полезно, когда необходимо сразу же реагировать на изменения и избежать мерцания интерфейса.

Подробнее

Чем отличается скрытие элементов с помощью opacity, visibility и display: none?

opacity: 0 делает элемент невидимым, но он продолжает занимать место и реагировать на события. visibility: hidden также скрывает элемент, сохраняя его место в layout, но события мыши не срабатывают. display: none полностью удаляет элемент из потока документа, освобождая занимаемое место.

Подробнее

Что происходит на этапах Layout, Paint и Composite?

Layout, Paint и Composite — это основные этапы рендеринга страницы в браузере.
На этапе Layout рассчитываются размеры и позиции элементов.
На этапе Paint элементы рисуются в слои.
На этапе Composite слои объединяются и выводятся на экран.

Подробнее

Почему useLayoutEffect может блокировать рендер?

useLayoutEffect выполняется синхронно после изменения DOM, но до того, как браузер выполнит отрисовку. Пока код внутри эффекта не завершится, браузер не может показать обновлённый интерфейс. Если эффект содержит тяжёлые вычисления, рендер визуально «зависает». Именно поэтому неправильное использование useLayoutEffect может ухудшать производительность. Этот хук требует особой осторожности.

Подробнее

В каких случаях стоит использовать useLayoutEffect?

useLayoutEffect стоит использовать, когда нужно синхронно прочитать или изменить DOM до отрисовки. Это актуально для измерения размеров элементов и предотвращения визуальных скачков. Также он применяется для интеграции с библиотеками, напрямую работающими с DOM. В большинстве случаев достаточно useEffect. useLayoutEffect — инструмент для точечных задач.

Подробнее

В каком порядке выполняются render, useLayoutEffect и useEffect?

Как сделать layout из трёх колонок с фиксированной левой и резиновыми правыми?

Как отцентрировать элемент поверх нескольких колонок Grid?

Как позиционировать модальное окно относительно части layout’а?

Как useLayoutEffect влияет на отображение UI

  • Рейтинг:

    5

  • Сложность:

    7

Сначала React выполняет render, затем на этапе коммита вызывается useLayoutEffect, и только после отрисовки браузером вызывается useEffect. useLayoutEffect выполняется синхронно и блокирует отрисовку, а useEffect — асинхронно, после paint. Поэтому useLayoutEffect используют для работы с layout, а useEffect — для побочных эффектов, не влияющих на разметку.

Подробнее
  • Рейтинг:

    4

  • Сложность:

    5

Проще всего использовать CSS Grid: задать фиксированную ширину первой колонки и fr для остальных. Grid сразу описывает структуру и не требует сложных расчётов. Альтернатива — Flexbox, где первая колонка фиксированная, а остальные растягиваются через flex: 1. Grid обычно читается проще и масштабируется лучше.

Подробнее
  • Рейтинг:

    3

  • Сложность:

    6

Чтобы отцентрировать элемент поверх нескольких колонок Grid, обычно используют grid-column для растягивания элемента и place-self: center или flex внутри него. Альтернатива — абсолютное позиционирование относительно grid-контейнера. Grid-способ предпочтительнее, потому что он остаётся декларативным и адаптивным. Абсолютное позиционирование используют, если элемент не должен влиять на сетку

Подробнее
  • Рейтинг:

    4

  • Сложность:

    7

Чтобы позиционировать модалку относительно части layout’а, контейнер делают position: relative, а модалку — position: absolute. Тогда координаты считаются от этого контейнера, а не от окна браузера. Такой подход полезен для локальных модалок, попапов и dropdown’ов. Для глобальных модалок обычно используют position: fixed и порталы.

Подробнее
  • Рейтинг:

    4

  • Сложность:

    7

useLayoutEffect выполняется синхронно после изменения DOM, но до отображения UI пользователю. Это позволяет читать размеры элементов и сразу вносить изменения без визуального мерцания. В отличие от useEffect, он блокирует отрисовку. Использовать его нужно осторожно. Обычно он нужен для работы с layout и измерениями.

Подробнее
  • Рейтинг:

    4

  • Сложность:

    6

  • Рейтинг:

    3

  • Сложность:

    7

  • Рейтинг:

    4

  • Сложность:

    8

  • Рейтинг:

    4

  • Сложность:

    7

  • Рейтинг:

    4

  • Сложность:

    6