假设我有一个包含 1000 个项目的列表。我用 React 渲染它,像这样:
class Parent extends React.Component {
render() {
// this.state.list is a list of 1000 items
return <List list={this.state.list} />;
}
}
class List extends React.Component {
render() {
// here we're looping through this.props.list and creating 1000 new Items
var list = this.props.list.map(item => {
return <Item key={item.key} item={item} />;
});
return <div>{list}</div>;
}
}
class Item extends React.Component {
shouldComponentUpdate() {
// here I comparing old state/props with new
}
render() {
// some rendering here...
}
}
使用相对较长的列表 map() 大约需要 10-20 毫秒,我可以注意到界面中有一点延迟。
当我只需要更新一个时,我可以防止每次重新创建 1000 个 React 对象吗?