Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Как работает useReducer и когда его использовать вместо useState или Redux?
useReducer — это хук React, который управляет сложным состоянием через редюсер (функцию, обрабатывающую действия). Его стоит использовать:
Когда состояние сложное (много связанных значений, например, форма с валидацией).
Когда логика обновления нетривиальна (много условий, побочных эффектов).
Для оптимизации производительности (редюсеры помогают избежать лишних ререндеров).
Как упрощенная альтернатива Redux (если не нужен глобальный стейт).
Для чего нужен useState?
useState нужен для хранения и изменения состояния внутри функционального компонента. Он позволяет React отслеживать изменения данных и перерисовывать компонент. Состояние сохраняется между рендерами. Без useState компонент был бы статичным. Это один из базовых хуков React.
Какие аргументы может принимать сеттер из useState?
Сеттер из useState может принимать либо новое значение, либо функцию-обновитель. Функция-обновитель получает предыдущее состояние и возвращает новое. Второй вариант нужен, когда новое состояние зависит от предыдущего. React сам решает, когда применить обновление.
Чем useRef отличается от useState?
useState используется для хранения данных, изменение которых должно вызывать перерендер компонента. useRef хранит изменяемое значение, изменение которого не вызывает перерендер. useRef часто применяют для доступа к DOM-элементам или для хранения технических значений (таймеры, предыдущие значения). Выбор зависит от того, влияет ли изменение значения на отображение UI.
Почему useState не реагирует на мутацию объекта без смены ссылки?
useState сравнивает старое и новое значение по ссылке. Если ссылка не изменилась, React считает, что состояние осталось тем же самым. При мутации объекта ссылка остаётся прежней, поэтому ререндер не запускается. Чтобы React обновился, нужно создать новый объект.
Как связать внешний объект с React через useRef?
Рейтинг:
3
Сложность:
6
useRef позволяет хранить ссылку на внешний объект между рендерами без их запуска. Через ref.current можно читать и изменять данные, но React не будет автоматически перерисовываться. Чтобы изменения отразились в UI, нужно дополнительно инициировать ререндер, например через useState или подписку. useRef подходит для хранения ссылок, а не реактивного состояния.
Рейтинг:
3
Сложность:
6
Рейтинг:
5
Сложность:
3
Рейтинг:
5
Сложность:
4
Рейтинг:
5
Сложность:
5
Рейтинг:
5
Сложность:
5