Middle
12
Оптимизировали компоненты — приведите пример, что было до оптимизации, что было после.
Компании, где спрашивали
Хьюнет
Ответ от нейросети
sobes.tech AI
До оптимизации у меня был компонент React, который рендерил большой список элементов, и каждый элемент перерисовывался при любом изменении состояния родителя, что приводило к снижению производительности.
После оптимизации я использовал React.memo для мемоизации дочерних компонентов, а также применил виртуализацию списка с помощью библиотеки react-window, чтобы рендерить только видимые элементы.
Пример до оптимизации:
function ItemList({ items }) {
return (
<ul>
{items.map(item => <Item key={item.id} data={item} />)}
</ul>
);
}
После оптимизации:
import { FixedSizeList as List } from 'react-window';
const MemoizedItem = React.memo(function Item({ data, index, style }) {
const item = data[index];
return <div style={style}>{item.name}</div>;
});
function ItemList({ items }) {
return (
<List
height={500}
itemCount={items.length}
itemSize={35}
width={300}
itemData={items}
>
{MemoizedItem}
</List>
);
}
Такой подход значительно уменьшил количество перерисовок и улучшил отзывчивость интерфейса.