为什么需要使用useCallback呢??,我们先来看看官网给出的解释
这里我们看到的作用就是减少子组件没必要的渲染,具体怎么去理解我们等下看例子,我在官网的基础上再加上自己的理解吧,useCallback的目的是在与缓存了每次渲染时inline callback的实例,这样方便配合子组件的shouldComponentUpdate或者React.memo,去减少没必要的渲染,这里要提醒下React.memo和React.callback要配合使用,不然不仅不能提升性能还有可能让性能下降
场景展示
在class中父组件给子组件传递一个方法通常会采用以下的方式。
import React from 'react'
class ParentComponent extends React.Component{
constructor(props)
{
super(props);
this.state={
count:0
}
this.count=0;
}
parentClick(){
console.log("you click parent");
this.count++;
this.setState({
count:this.count});
}
childClick(){
console.log("you cvlick child")
}
render(){
return(
<div>
<div onClick={
()=>{
this.parentClick()
}}>
ParentComponent
</div>
<ChildComponent childClick={
()=>{
this.childClick();