Встречается на собеседованиях • сегодня
Что такое хук
Хуки — это функции, которые позволяют "подключаться" к состоянию и жизненному циклу компонентов React из функциональных компонентов. Введение их предоставило мощный инструментарий для работы со состоянием, эффектами и другими возможностями React без необходимости преобразования функциональных компонентов в классы.
Основные хуки:
- useState: Позволяет функциональным компонентам иметь состояние.
javascript
const [count, setCount] = useState(0);- useEffect: Позволяет выполнять побочные эффекты в компоненте, такие как обращения к API, подписки и т.д. Это аналог методов жизненного цикла `componentDidMount`, `componentDidUpdate`, и `componentWillUnmount` в классовых компонентах.
javascript
useEffect(() => {
document.title = `Вы нажали ${count} раз`;
}, [count]); // Эффект использует переменную состояния count- useContext: Позволяет получить доступ к данным из контекста. Это упрощает передачу данных через дерево компонентов без необходимости передавать props на каждом уровне.
javascript
const value = useContext(MyContext);- useReducer: Предоставляет альтернативный способ управления состоянием, основанный на паттерне редьюсер. Это особенно полезно для управления сложным состоянием.
javascript
const [state, dispatch] = useReducer(reducer, initialState);- useCallback: Возвращает мемоизированный колбэк, который изменяется только если изменяются зависимости. Это помогает предотвратить ненужные ререндеры.
javascript
const memoizedCallback = useCallback(() => {
doSomething(a, b);
}, [a, b]);- useMemo: Мемоизирует вычисляемое значение. Это помогает избежать ненужных вычислений при каждом рендере.
javascript
const memoizedValue = useMemo(() => computeExpensiveValue(a, b), [a, b]);- useRef: Возвращает изменяемый ref объект, который может быть использован для хранения значения на протяжении всего жизненного цикла компонента.
javascript
const myRef = useRef(initialValue);Зачем они нужны:
Хуки были введены для решения нескольких проблем:
- Упрощение переиспользования логики состояния между компонентами без необходимости создавать высшие порядковые компоненты или рендер-пропсы.
- Использование состояния и других возможностей React без написания классов.
- Организация логики внутри компонента по принципу использования, а не жизненного цикла.
Хуки предлагают более простой и мощный способ создания компонентов, делая код более читабельным и легко поддерживаемым.
Feb. 26, 2024, easyoffer

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы