function App() {
const ReRenderCountComp = React.memo(({fn}) => {
const renderCountRef = useRef(0);
renderCountRef.current += 1;
return (
<div>
<p>ReRender Count: {renderCountRef.current}</p>
<Button onClick={fn}>
showParentCount
</Button>
</div>
);
});
const [count, setCount] = useState(0);
const notifyCountFn = useMemoizedFn(() => {
message.success(`count: ${count}`);
});
const normalCallback = useCallback(() => {
message.success(`count: ${count}`);
}, [count]);
const noDepCallback = useCallback(() => {
message.success(`count: ${count}`);
}, []);
return (
<div className="acux-demo-column">
<div>
<p>count: {count}</p>
<Button onClick={() => setCount(count + 1)}>
setCount
</Button>
</div>
<ReRenderCountComp fn={notifyCountFn} />
<ReRenderCountComp fn={normalCallback} />
<ReRenderCountComp fn={noDepCallback} />
</div>
);
}