Встречается на собеседованиях • сегодня
Приведи примеры неэффективных процессов
1. **Лишние ререндеры компонентов**
Если не использовать `React.memo`, `useMemo` или `useCallback`, компоненты могут перерисовываться без необходимости.
```jsx
const Component = () => {
const [count, setCount] = useState(0);
const handleClick = () => setCount(prev => prev + 1);
// Без useCallback функция создаётся заново при каждом рендере
return ;
};
```
2. **Медленные API-запросы без оптимизации**
Загрузка данных без кеширования (например, через `fetch` напрямую) приводит к повторным запросам.
3. **Избыточные вычисления в цикле**
Например, фильтрация массива внутри рендера:
```jsx
const List = ({ items }) => {
const filtered = items.filter(item => item.active); // Вычисляется каждый рендер
return filtered.map(item => - );
};
```
4. **Неоптимальная анимация через JS**
Использование `setInterval` или `requestAnimationFrame` без debounce/throttle может тормозить страницу.
5. **Грубые CSS-селекторы**
Например, `div > span > a` медленнее, чем `.link-class`, из-за сложного сопоставления.
Оптимизация: мемоизация, кеширование, debounce/throttle, Virtual DOM, CSS-анимации.

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