|
@@ -0,0 +1,40 @@
|
|
|
+import { useCallback, useEffect, useRef, useState } from 'react';
|
|
|
+
|
|
|
+function MyButton({ onClick }) {
|
|
|
+ // console.log(`output->MyButton`);
|
|
|
+ return <button onClick={onClick}>点击</button>;
|
|
|
+}
|
|
|
+
|
|
|
+function LearnUseCallback() {
|
|
|
+ let [c, setC] = useState(0);
|
|
|
+
|
|
|
+ let cbRef = useRef(null);
|
|
|
+
|
|
|
+ // useEffect(() => {
|
|
|
+ // cbRef.current = handleClick;
|
|
|
+ // }, []);
|
|
|
+
|
|
|
+ useEffect(() => {
|
|
|
+ document.title = `你点击按钮 ${c} 次`;
|
|
|
+ }, [c]);
|
|
|
+
|
|
|
+ let handleClick = useCallback(() => {
|
|
|
+ setC((prevC) => prevC + 1);
|
|
|
+ }, []);
|
|
|
+
|
|
|
+ // let handleClick = useCallback(() => {
|
|
|
+ // setC(c + 1);
|
|
|
+ // }, [c]);
|
|
|
+
|
|
|
+ // useEffect(() => {
|
|
|
+ // console.log(`output->`, cbRef.current == handleClick);
|
|
|
+ // });
|
|
|
+
|
|
|
+ return (
|
|
|
+ <div>
|
|
|
+ <MyButton onClick={handleClick} />
|
|
|
+ </div>
|
|
|
+ );
|
|
|
+}
|
|
|
+
|
|
|
+export default LearnUseCallback;
|