Встречается на собеседованиях • сегодня
Приведи пример сложного кейса на прошлом проекте
На прошлом проекте столкнулся с необходимостью реализовать динамическую подгрузку и виртуализацию большого списка (10k+ элементов) с возможностью фильтрации и сортировки без перезагрузки страницы.
Основные сложности:
- Поддержание плавного скролла при быстрой навигации
- Корректное обновление позиций элементов при фильтрации
- Минимизация перерисовок DOM
Решение:
```jsx
const VirtualList = ({ items, height }) => {
const [scrollTop, setScrollTop] = useState(0);
const [visibleItems, setVisibleItems] = useState([]);
useEffect(() => {
const startIdx = Math.floor(scrollTop / ITEM_HEIGHT);
const endIdx = Math.min(startIdx + VISIBLE_COUNT, items.length);
setVisibleItems(items.slice(startIdx, endIdx).map(item => ({
...item,
offset: startIdx * ITEM_HEIGHT
}));
}, [scrollTop, items]);
return (
setScrollTop(e.target.scrollTop)}>
);
};
```
Оптимизировали через IntersectionObserver и requestAnimationFrame. В итоге добились FPS 60 при любых операциях.
{visibleItems.map(item => (
-
))}

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