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