【发布时间】:2022-01-24 13:39:53
【问题描述】:
我很好奇什么是处理列表逻辑的更高效的方式。比如……
项目组件
export default function Item({data}) => {
return <div>
<h1>{data.name}
<button> Do Something </button>
</div>
}
列表组件
export default function List({list}) => {
return <div>
{list.map(item) => <Item data={item} />}
</div>
}
主要组件
export default function Main() {
return <div>
<List list={someList} />
</div>
}
如果我想用 Item 组件中的按钮做某事,最好将逻辑放在 Item 组件中,如下所示:
export default function Item({data}) => {
const handleDoSomething = () => {
logic goes here
}
return <div>
<h1>{data.name}
<button onClick={() => handleDoSomething()}> Do Something </button>
</div>
}
或者我应该将事件传播回 List 组件并像这样在那里处理它:
export default function Item({data, handleButtonClick}) => {
return <div>
<h1>{data.name}
<button onClick={() => handleButtonClick()}> Do Something </button>
</div>
}
export default function Main() {
const handleDoSomething = () => {
logic goes here
}
return <div>
<List list={someList} handleButtonClick={() => handleDoSomething()} />
</div>
}
这样做有什么好处?我想要更好的表现。
【问题讨论】:
标签: javascript reactjs performance rendering