iT邦幫忙

2023 iThome 鐵人賽

DAY 18
0
SideProject30

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

DAY 18 - useMemo 讓計算加速

  • 分享至 

  • xImage
  •  

⭐任務說明

😸今天學習使用 useMemo

useMemo 是什麼

用來儲存在重新渲染過程中,會使用到的計算結果

如何使用

const cachedValue = useMemo(calculateValue, dependencies)
  • 第一個參數會是一個函數,會放的是需要計算的邏輯
  • 第二個參數是相依值

試試看

import { useState, useMemo } from "react";

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

  // 使用 useMemo 計算平方值
  const squaredValue = useMemo(() => {
    // console.log('計算平方值');
    return count ** 2;
  }, [count]);

  return (
    <div>
      <p>計數: {count}</p>
      <p>計算值: {squaredValue}</p>
      <button onClick={() => setCount(count + 1)}>點我增加</button>
    </div>
  );
}

  • 當點選『點我增加』功能鍵時,count 值 + 1

  • 使用 useMemo 相依在 count 上,當 count 在初始化渲染及重新渲染的時候會觸發

  • 這邊把 return count ** 2 改成 return count + 2

  • 可以觀察到,初始化渲染的時候會顯示,再來就是重新渲染的時候會觸發
    img

結語

學會 useMemo 的用法了嗎? 下個任務見囉!


上一篇
DAY 17 - 使用 useCallback 的不變記憶術
下一篇
DAY 19 - Custom Hook
系列文
30 天大冒險:新手勇闖 React 大秘境30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言