Встречается на собеседованиях • сегодня

Приведи пример сложного кейса, который удалось решить

Один из сложных кейсов — оптимизация рендеринга большого списка (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%.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы