可以使用React.memo来包装列表项组件,这样可以缓存组件,当props没有改变时,可以避免重新渲染。在更新列表项时,只有被更新的项会重新渲染,其他项会使用缓存的组件。示例代码如下:
import React, { useState } from 'react';
function ListItem({ item }) {
return {item};
}
const MemoizedListItem = React.memo(ListItem);
function MyList() {
const [list, setList] = useState(['item1', 'item2', 'item3']);
const updateItem = (index, newItem) => {
setList([...list.slice(0, index), newItem, ...list.slice(index+1)]);
}
return (
{list.map((item, index) => (
))}
);
}