我创建了一个反应应用程序,其中有一个带有删除操作的项目列表。我知道,如果我从父级(项目容器)传递此删除操作,我可以在父级中使用“useCallback”来防止删除方法的不必要重新创建。
但是,如果在 item 组件中定义了 delete 方法并在其中使用了“useCallback”会发生什么?它行不通吗?它不会使用相同的记忆方法而不每次都创建一个新方法吗?
换句话说,记忆的范围是什么?是全球性的吗?还是每个组件?
伪代码:
function ListComponent(){
let arr = [1,2,3]
return <div>
{
arr.map(item => <Item id={item} />
}
</div>
}
function Item({id}){
let memorizedDelete = useCallback(() => alert("deleting"))
return <div onClick={memorizedDelete} > {id} </div>
}
谢谢