react文档
class LoggingButton extends React.Component {
handleClick() {
console.log('this is:', this);
}
render() {
// This syntax ensures `this` is bound within handleClick
return (
<button onClick={() => this.handleClick()}>
Click me
</button>
);
}
}
react文档:-
这种语法的问题是每次 LoggingButton 呈现时都会创建不同的回调。在大多数情况下,这很好。但是,如果此回调作为props传递给较低的组件,则这些组件可能会进行额外的重新渲染。我们通常建议在构造函数中绑定或使用类字段语法,以避免此类性能问题。
这对于基于类的组件来说很好,那么功能组件呢。
我们可以像下面这样使用并遇到性能问题,因为每次渲染都会创建不同的回调吗?它说它在大多数情况下都有效,所以我不确定我们是否应该保持原样或对所有带有回调的功能组件使用 React 钩子 useCallBack。
我有 3 种差异类型
const LoggingButtion = (props)=>{
const [ loggedStatus, setLogStatus] = useState(false);
const handleClick =()=> {
console.log('Button Clicked');
setLogStatus(true)
}
return (
<button onClick={() => { console.log('button clicked'); setLogStatus(false)} > // Type1
<button onClick={() => handleClick()}> // type 2
<button onClick={handleClick}> // type 3
Click me
</button>
);
}