Встречается на собеседованиях • сегодня
Как оптимизировать без useMemo
Оптимизация без `useMemo` возможна через другие подходы:
1. **Мемоизация вручную**
Сохраняем предыдущие значения и сравниваем зависимости перед вычислением:
```jsx
let prevDeps = null;
let cachedValue = null;
function computeExpensiveValue(deps) {
if (shallowEqual(deps, prevDeps)) return cachedValue;
prevDeps = deps;
cachedValue = heavyCalculation(deps);
return cachedValue;
}
```
2. **Разделение компонентов**
Разбиваем компонент на мелкие части, чтобы React мог эффективнее сравнивать пропсы:
```jsx
const ExpensivePart = ({ data }) => ;
}
```
3. **Использование `React.memo`**
Для предотвращения лишних ререндеров дочерних компонентов:
```jsx
const MemoizedComponent = React.memo(ExpensiveComponent);
```
4. **Оптимизация функций**
Выносим стабильные функции за пределы компонента или используем `useCallback` для колбэков.
Ключевая идея — минимизировать лишние вычисления через грамотное структурирование кода и контроль ререндеров.
{data}
;
function Parent() {
const data = computeData(); // Пересчитывается только при изменении пропсов
return 
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы