function ButtonComponent ({ onClick }) {
console.log('Button re-render')
return (
<button onClick={onClick}>
Log click
</button>
)
}
const MemoizedButtonComponent = React.memo(ButtonComponent)
function App () {
const [date, setDate] = React.useState(new Date())
const handleUpdateDate = () => {
setDate(new Date())
}
const handleClick = React.useCallback(() => {
console.log('I have been clicked')
}, [])
return (
<div>
{date.toLocaleString()}
<br />
<button onClick={handleUpdateDate}>
Click to update date
</button>
<br />
<MemoizedButtonComponent onClick={handleClick} />
</div>
)
}