Встречается на собеседованиях • сегодня
Приведи пример сложного кейса, который удалось решить
Один из сложных кейсов — оптимизация рендеринга большого списка (10k+ элементов) с динамической высотой и виртуальным скроллом. Проблема: стандартные решения (например, `react-window`) не учитывают динамическую высоту элементов, что приводило к "прыжкам" контента при скролле.
Решение:
1. Использовал IntersectionObserver для ленивой подгрузки.
2. Реализовал механизм измерения высоты элементов и кеширования.
3. Применил двойную буферизацию (рендер чуть больше элементов, чем видно).
Пример:
```javascript
const [heights, setHeights] = useState({});
const measureRef = useCallback((node, index) => {
if (node && !heights[index]) {
const height = node.getBoundingClientRect().height;
setHeights(prev => ({ ...prev, [index]: height }));
}
}, []);
// В рендере:
{items.map((item, index) => (
measureRef(node, index)} key={item.id}>
{item.content}
))}
```
Результат: плавный скролл без прыжков, потребление памяти снижено на 70%.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы