Логотип 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


Что такое props drilling?

Prop drilling — это процесс передачи данных через несколько уровней компонентов, когда промежуточные компоненты не используют эти данные. Это может привести к усложнению структуры компонентов и затруднить управление состоянием приложения, так как каждое изменение требует обновления всех компонентов-посредников.

Подробнее

Что такое React Reconciliation (Этап согласования)?

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

Подробнее

Вызывают ли изменения props ререндеры в React?

Изменение props вызывает ререндер компонента. По умолчанию при ререндере родителя ререндерятся и его дочерние компоненты, даже если их props не изменились. Чтобы этого избежать, используют мемоизацию (React.memo, shouldComponentUpdate, PureComponent).

Подробнее

Как минимизировать перерендеры компонента при изменении пропсов?

  1. Используйте React.memo для мемоизации компонента.

  2. Передавайте примитивные пропсы (числа, строки).

  3. Для сложных объектов — useMemo/useCallback.

Подробнее

Почему примитивные пропсы эффективны для мемоизации?

Примитивы (строки, числа) сравниваются по значению, а объекты/массивы — по ссылке. Это делает проверку изменений быстрее.

Подробнее

Как работает memo при поверхностном сравнении пропсов?

По каким критериям React.memo решает, перерендеривать компонент или нет?

Как передавать JSX внутрь компонента?

Почему мемоизация может не работать при передаче объектов?

Что лучше передавать в компонент — объект или примитивы?

  • Рейтинг:

    2

  • Сложность:

    7

React.memo сравнивает пропсы попарно (prevProps ↔ nextProps) через Object.is. Если все пропсы равны — перерендера нет.

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

    5

  • Сложность:

    7

React.memo сравнивает пропсы текущего и предыдущего рендера. По умолчанию используется поверхностное сравнение. Если все пропсы считаются одинаковыми, компонент не перерендеривается. Если хотя бы один проп изменился, рендер происходит заново. Также можно передать собственную функцию сравнения.

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

    4

  • Сложность:

    3

В React JSX можно передать внутрь компонента двумя основными способами. Первый — через специальный проп `children`, поместив JSX между открывающим и закрывающим тегами компонента. Второй — через любой другой проп, передав JSX как его значение. Проп `children` — это стандартный и наиболее интуитивный способ для передачи разметки, который делает компонент обёрткой. Передача через именованный проп даёт больше контроля, например, для рендеринга контента в разных местах компонента.
Подробнее
  • Рейтинг:

    4

  • Сложность:

    5

Мемоизация в React (React.memo, useMemo, useCallback) работает на основе поверхностного сравнения. При передаче объектов каждый раз создается новый объект с новой ссылкой, поэтому сравнение показывает, что объект изменился, и мемоизация не срабатывает. Для решения нужно стабилизировать ссылки с помощью useMemo или useCallback, либо передавать примитивные значения.
Подробнее
  • Рейтинг:

    4

  • Сложность:

    5

Лучше передавать примитивы, так как они сравниваются по значению и не вызывают лишних ререндеров при использовании React.memo. Объекты при каждом рендере создаются заново, что ломает мемоизацию. Если нужен объект, его следует стабилизировать через useMemo или вынести за пределы компонента.
Подробнее
  • Рейтинг:

    4

  • Сложность:

    3

  • Рейтинг:

    5

  • Сложность:

    9

  • Рейтинг:

    3

  • Сложность:

    4

  • Рейтинг:

    2

  • Сложность:

    7

  • Рейтинг:

    2

  • Сложность:

    7