Выбор ответа Junior memo, useMemo, useCallback спрашивают часто обновлено
useMemo против useCallback
Вопрос
Чем useCallback(fn, deps) отличается от useMemo?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: useCallback(fn, deps) это useMemo(() = fn, deps). useMemo кеширует результат вызова переданной функции, а useCallback кеширует саму функцию, то есть эквивалентен useMemo(() = fn, deps).
Варианты ответа
useCallbackвызываетfnи кеширует результат её вызоваuseCallback(fn, deps)этоuseMemo(() => fn, deps)правильный ответuseCallbackработает в классах, аuseMemoв функцияхuseCallbackне принимает зависимости и кеширует навсегда
Разбор
useMemo кеширует результат вызова переданной функции, а useCallback кеширует саму функцию, то есть эквивалентен useMemo(() => fn, deps). Он не вызывает fn. Хуки в классах не работают вовсе. Зависимости у useCallback есть, и они обязательны по смыслу.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Термины по теме
Ещё по теме «memo, useMemo, useCallback»
- Перерендерится ли children
- React Compiler
- React.memo
- useCallback
- useMemo
- Таблица на 10 000 строк
- memo и children
- memo и стрелочная функция в props