React hooks——useCallback

一、簡介

useCallback?是 React 提供的一個 Hook,用于緩存函數引用,避免在組件重新渲染時創建新的函數實例,從而優化性能。

1.1 基本語法

const memoizedCallback = useCallback(() => {// 函數邏輯},[dependencies] // 依賴項數組
);
  • 第一個參數:要緩存的函數

  • 第二個參數:依賴項數組,只有當依賴項變化時,才會重新創建函數

1.2 主要特點

??緩存函數:避免每次渲染時都創建新的函數
??優化子組件渲染:配合?React.memo?使用,防止因父組件更新導致子組件不必要的重新渲染
??依賴項控制:只有依賴項變化時,才會重新生成函數

二、代碼實現

import { memo, useState, useCallback } from "react";// 子組件
const Input = memo(({ onChange }) => {console.log("子組件重新渲染了");return (<div><input type="text" onChange={(e) => onChange(e.target.value)}></input></div>);
});export default function App() {// 觸發父組件渲染的函數const [count, setCount] = useState(0);const [count2, setCount2] = useState(0);// 傳給子組件的函數const changeHandler = useCallback((value) => console.log(value), [count2]);return (<div><Input onChange={changeHandler}></Input><button onClick={() => setCount(count + 1)}>點我 子組件不會重新渲染</button><button onClick={() => setCount2(count2 + 1)}>點我 子組件重新渲染</button></div>);
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/89687.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/89687.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/89687.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

跨個體預訓練與輕量化Transformer在手勢識別中的應用:Bioformer

目錄 一、從深度學習到邊緣部署&#xff0c;手勢識別的新突破 &#xff08;一&#xff09;可穿戴設備 邊緣計算 個性化醫療新可能 &#xff08;二&#xff09;肌電信號&#xff08;sEMG&#xff09;&#xff1a;手勢識別的關鍵媒介 &#xff08;三&#xff09;挑戰&#…

無線調制的幾種方式

不同的調制方式在 頻譜效率、抗干擾能力、功耗、實現復雜度 等方面存在顯著差異。以下是主要調制方式的對比分析&#xff1a;一、調制方式的核心區別調制方式原理頻譜效率抗干擾能力功耗典型應用AM改變載波振幅低差&#xff08;易受噪聲影響&#xff09;較高廣播電臺FM改變載波…

五分鐘系列-網絡性能測試工具iperf3

目錄 一、iperf3 是什么&#xff1f; 二、為什么需要 iperf3&#xff1f; 三、iperf3 的主要測量指標 四、安裝 iperf3 五、基礎使用模式&#xff08;命令行參數示例&#xff09; 1. 啟動 Server 端 (必須) 2. 啟動 Client 端進行測試 (最常見) 基本 TCP 測試 (10秒) …

LiFePO4電池的安全詳解

一、電池的制作過程 鋰離子電池的五大核心組成部分:正極、負極、電解液、隔膜和外殼。 正極:把正極材料(如LiFePO?)+ 導電劑(如炭黑)+ 粘結劑(如PVDF)混合成漿料,涂覆在鋁箔上,然后烘干、輥壓。 負極:把負極材料(如石墨)+ 導電劑 + 粘結劑混合成漿料,涂覆在銅…

S7-200 SMART PLC: SMART 200 CPU 密碼設置及權限設置方式

在工業自動化控制中&#xff0c;SMART 200 CPU 的安全穩定運行直接關系到整個系統的可靠運作&#xff0c;而組態系統安全則是保障 SMART 200 CPU 安全的核心環節。通過合理設置密碼及相關安全參數&#xff0c;能為 SMART 200 CPU 構建一道堅固的防護屏障&#xff0c;有效保護用…

Datawhale AI數據分析 作業

一、 貸款批準預測數據集1. 數據探索與理解prompt 1:這是訓練數據&#xff0c;目的是貸款批準預測數據集上訓練的深度學習模型生成的數據&#xff0c;旨在使用借款人信息預測貸款批準結果&#xff0c;它通過模擬真實貸款審批場景&#xff0c;幫助金融機構評估借款人風險。 請展…

100條常用SQL語句

一、基本查詢語句 查詢所有數據&#xff1a; SELECT * FROM 表名; 查詢特定列&#xff1a; SELECT 列名1, 列名2 FROM 表名; 條件查詢&#xff1a; SELECT * FROM 表名 WHERE 條件; 模糊查詢&#xff1a; SELECT * FROM 表名 WHERE 列名 LIKE ‘模式%’; 排序查詢&#xff1a; …

Visual Studio編譯WPF項目生成的文件介紹

文章目錄一、Summarize主要輸出文件1. **可執行文件 (.exe)**2. **程序集文件 (.dll)**3. **PDB 文件 (.pdb)**資源與配置文件1. **XAML 編譯文件 (.baml)**2. **資源文件 (.resources)**3. **應用程序配置文件 (.config)**依賴文件1. **引用的 NuGet 包**2. **引用的框架程序集…

「Chrome 開發環境快速屏蔽 CORS 跨域限制詳細教程」*

Chrome 開發環境快速屏蔽 CORS 跨域限制【超詳細教程】 &#x1f4e2; 為什么需要臨時屏蔽 CORS&#xff1f; 在日常前后端開發中&#xff0c;我們經常會遇到這樣的報錯&#xff1a; Access to fetch at https://api.example.com from origin http://localhost:3000 has been …

Linux命令大全-df命令

一、簡介df&#xff08;英文全拼&#xff1a;display free disk space&#xff09; 命令用于顯示或查看文件系統&#xff08;或磁盤&#xff09;的空間使用情況&#xff0c;包括總容量、已用空間、可用空間、使用率和掛載點等信息。二、語法df [選項]... [文件]...參數參數說明…

《程序員修煉之道》第一二章讀書筆記

最近在看《程序員修煉之道&#xff1a;通向務實的最高境界》這一本書&#xff0c;記錄一下看書時的一點淺薄感悟。務實程序員不僅是一種技能水平的體現&#xff0c;更是一種持續修煉、不斷反思并主動承擔責任的過程。對自己的行為負責是務實哲學的基石之一。在重構CRM時面對文檔…

ArcGISPro應用指南:使用ArcGIS Pro創建與優化H3六邊形網格

H3 是由 Uber 開發的一個開源地理空間分析框架&#xff0c;旨在通過將地球表面劃分為等面積的六邊形網格來支持各種地理空間數據分析任務。每個六邊形單元在 H3 系統中都有一個獨一無二的標識符&#xff0c;即 H3 指數。這種網格系統不僅能夠覆蓋全球&#xff0c;而且適用于任何…

xss-dom漏洞

目錄 靶場搭建 第一關 第二關 第三關 第四關 第五關 第六關 第七關 第八關 靶場下載地址&#xff1a;https://github.com/PwnFunction/xss.pwnfunction.com 靶場搭建 將文件用clone 下載到ubuntu&#xff0c; 然后進入 cd xss.pwnfunction.com/hugo/ 這個目錄下 hu…

BPE(字節對編碼)和WordPiece 是什么

BPE(字節對編碼)和WordPiece 是什么 BPE(字節對編碼)和WordPiece 是自然語言處理中常用的子詞分詞算法,它們通過將文本拆分為更小的語義單元來平衡詞匯表大小和表達能力。 BPE(Byte Pair Encoding,字節對編碼) 原理 初始化:將文本按字符(或Unicode字節)拆分為最小…

Java行為型模式---狀態模式

狀態模式基礎概念狀態模式&#xff08;State Pattern&#xff09;是一種行為型設計模式&#xff0c;其核心思想是允許對象在內部狀態發生改變時改變它的行為&#xff0c;對象看起來好像修改了它的類。狀態模式將狀態相關的行為封裝在獨立的狀態類中&#xff0c;并將狀態轉換邏輯…

重學Framework Input模塊:如何實現按鍵一鍵啟動Activity-學員作業

需求背景&#xff1a; 近來vip群里學員朋友有問道一個需求&#xff0c;大概需求就是他們做TV的Framework開發&#xff0c;想要遙控器有一個新定義的兒童節目按鍵&#xff0c;想要實現這個按鍵按下后就跳轉到兒童節目的Activity。需求拆解及作業要求&#xff1a; 針對上面需求&a…

bmp圖像操作:bmp圖像保存及raw與bmp轉換

1. 保存bmp圖像&保存一張正弦圖像到D:\1.bmp /********************************************** * fileName bmpinc.h * brief 對bmp文件的操作&#xff0c;包括&#xff1a; * - saveBmp&#xff1a;保存bmp文件 * - Save…

SpringAI——提示詞(Prompt)、提示詞模板(PromptTemplate)

Prompt 是引導 AI 模型生成特定輸出的輸入格式&#xff0c;Prompt 的設計和措辭會顯著影響模型的響應。最開始Prompt只是單純的文本文字&#xff0c;后面可以包含占位符&#xff0c;可以識別消息的角色。比如包含占位符的Prompt,也就是我們講的消息模板(PromptTemplate)&#x…

【深度學習筆記 Ⅰ】5 參數和超參數

在深度學習中&#xff0c;參數&#xff08;Parameters&#xff09; 和 超參數&#xff08;Hyperparameters&#xff09; 是模型訓練中兩個核心概念&#xff0c;它們共同決定了模型的性能&#xff0c;但作用方式和優化方法截然不同。以下是詳細對比與解析&#xff1a;1. 參數&am…

Linux 阻塞等待框架

在 Linux 設備驅動開發中&#xff0c;阻塞機制 是處理資源暫時不可用&#xff08;如設備未準備好數據、緩沖區滿等&#xff09;的核心手段。驅動程序可以將被阻塞的進程設置成休眠狀態&#xff0c;然后&#xff0c;在資源可用后&#xff0c;再將該進程喚醒。 在 Linux 驅動開發…