Встречается на собеседованиях • сегодня
Можно ли закэшировать функцию с помощью useMemo
Да, `useMemo` можно использовать для кэширования результатов функции, но только для значений, а не самой функции. Если функция дорогостоящая и возвращает одинаковый результат при одинаковых входных данных, `useMemo` поможет избежать повторных вычислений.
Пример:
```jsx
const expensiveCalculation = (a, b) => {
console.log('Calculating...');
return a * b;
};
const Component = ({ a, b }) => {
const result = useMemo(() => expensiveCalculation(a, b), [a, b]);
return
{result}
;
};
```
Важно помнить:
1. `useMemo` кэширует результат, а не функцию
2. Для кэширования самой функции (чтобы не создавать новую при каждом рендере) используй `useCallback`
3. Не злоупотребляй - `useMemo` имеет свою стоимость и нужен только для реально тяжелых вычислений
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы