iT邦幫忙

2023 iThome 鐵人賽

DAY 17
0
SideProject30

30 天大冒險:新手勇闖 React 大秘境系列 第 17

DAY 17 - 使用 useCallback 的不變記憶術

  • 分享至 

  • xImage
  •  

⭐任務說明

😸今天學習使用 useCallback

useCallback 是什麼

  • 用來記憶函數,以避免該函數被重新渲染

如何使用

const cachedFn = useCallback(fn, dependencies)

試試看

import { useState, useCallback } from "react";

export default function ParentComponent() {
  const [count, setCount] = useState(0);

  // 使用 useCallback 記憶 handleClick 函数
  const handleClick = useCallback(() => {
    alert("看訊息");
  }, []); // 此項目為空,只會被渲染一次

  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={() => setCount(count + 1)}>增加</button>
      <ChildComponent onClick={handleClick} />
    </div>
  );
}

function ChildComponent({ onClick }) {
  return <button onClick={onClick}>點我</button>;
}
  • 這邊使用 useCallback 函數,紀錄一個 alert 訊息
  • handleClick 第一個參數是函數、第二個參數為空時,表示在元件只會在初始化時渲染一次,
  • 當使用者點了增加功能鍵,則會觸發 setCount 函式,讓 count + 1,並且會重新渲染

結語

今天學會了嗎?下個任務見囉!


上一篇
DAY 16 - 複雜交給 useReducer
下一篇
DAY 18 - useMemo 讓計算加速
系列文
30 天大冒險:新手勇闖 React 大秘境30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言