React-forwardRef-useImperativeHandle

forwardRef? 暴露dom節點

作用:使用ref暴露DOM節點給父組件

案例

例如在父組件中想要獲取子組件input的輸入值,和讓input獲取焦點

?父組件

import { Button } from 'antd-mobile'
import Son from "./components/son";
import { useState,useRef } from "react";
const Year = () => {const inputRef = useRef(null)const getinputRef =()=>{console.log(inputRef);console.log(inputRef.current.value);    //子組件的輸入內容inputRef.current.focus() //獲取焦點}return (<div>父組件<Son ref={inputRef}></Son><div className="purple-theme"><Button color="primary" onClick={getinputRef}>按鈕</Button></div></div>);
};
export default Year;
子組件
import { forwardRef } from "react";
const Son = forwardRef((props,ref) => {console.log('我是子組件'); return (<div>我是子組件<input type="text" ref={ref}></input></div>);
})
export default Son;

useImperativeHandle 暴露子組件方法

作用:使用ref暴露子組件中的方法

案例

父組件通過ref調用子組件內部的focus方法實現使input獲取焦點

子組件
import { forwardRef,useImperativeHandle,useRef } from "react";
import { Button } from 'antd-mobile'
const Son = forwardRef((props,ref) => {console.log('我是子組件'); const inputRef = useRef(null)//聚焦方法const FocusInput = ()=>{console.log(inputRef);inputRef.current.focus()}// 把子組件方法暴露出去useImperativeHandle(ref,()=>{return {FocusInput}})return (<div>我是子組件<input type="text" ref={inputRef}></input></div>);
})
export default Son;
父組件

import { Button } from 'antd-mobile'
import Son from "./components/son";
import { useState,useRef } from "react";
const Year = () => {const SonRef = useRef(null) //調用子組件暴露的方法const getinputRef =()=>{SonRef.current.getinputRef()}return (<div>父組件<Son ref={SonRef}></Son><div className="purple-theme"><Button color="primary" onClick={getinputRef}>按鈕</Button></div></div>);
};
export default Year;

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

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

相關文章

Unity 用AI自動開發游戲----Cursor研究(實現一套利用Cursor生成模板快速實現原型的框架)

Unity 快速原型開發框架&#xff08;基于 Cursor AI&#xff09; &#x1f9e9; 框架簡介 本框架結合了 AI 編程助手 Cursor 的代碼生成能力&#xff0c;構建出一套適用于 Unity 項目的模塊化原型開發架構。它旨在極大提升開發效率、降低試錯成本&#xff0c;特別適用于快速搭…

D觸發器實現2分頻verilog及電路

使用D觸發器完成2分頻電路即通過時鐘的上升沿或下降沿到來時進行翻轉得到&#xff0c;信號的兩個狀態所占時間長度相同&#xff0c;因此它的輸出時鐘的占空比為50%。 D觸發器實現2分頻的電路圖如下所示&#xff1a;通過將D觸發器2分頻電路級聯&#xff0c;可實現輸入時鐘的2N倍…

UniApp完美對接RuoYi框架開發企業級應用

UniApp完美對接RuoYi框架的完整方案及可開發系統類型&#xff0c;結合企業級實踐與開源項目經驗整理而成&#xff0c;涵蓋技術對接、系統設計及實戰案例。 &#x1f527; 一、UniApp與RuoYi對接全流程 1. 后端配置&#xff08;RuoYi-Vue/RuoYi-Cloud&#xff09; 跨域支持 在網…

【通識】深度學習理論基礎

1. 深度學習導論 導論和簡介的基礎知識和路徑。 深度學習的各項涵蓋范圍&#xff1a;深度學習MLPs&#xff0c;然后是機器學習、邏輯回歸&#xff0c;知識基礎等等 1&#xff09;連結神經網絡等等&#xff1a;Cybernetics控制論&#xff0c;Connectionism連結主義&#xff0…

sql-labs(11-12)-萬能密碼登錄

sql-labs(11-12)萬能密碼登錄 第十一關&#xff1a; 這關是一個登陸口&#xff0c;也是一個sql注入的漏洞&#xff0c;也就是常說的萬能密碼。 在輸入框賬號密碼種分別輸入 1’ 和1’ 頁面會報錯。后臺使用的單引符號進行的拼接。賬號輸入1’ or ‘1’‘1 密碼輸入 1’ or …

MsSql 其他(2)

???????????????Mysql中的MVCC 一、MVCC 的核心目標與設計背景 MVCC&#xff08;Multi-Version Concurrency Control&#xff0c;多版本并發控制&#xff09; 是 InnoDB 存儲引擎為實現高并發事務處理而設計的核心機制。其核心目標是&#xff1a;在不犧牲事務隔…

解決本地部署n8n,域名訪問為什么一直有connection lost的報錯

問題&#xff1a;本地部署的n8n服務用IP訪問一切都正常&#xff0c;但是使用域名后報錯connection lost思路&#xff1a;首先懷疑是ngnix配置問題或者是docker中的環境問題查看docker logsOrigin header does NOT match the expected origin. (Origin: "nxxx.online:1181&…

傳統架構開發VS PREEvision:一場效率與可靠性的降維打擊

當前&#xff0c;整車功能數量激增&#xff0c;意味著需要更龐大的整車數據庫、更復雜的硬件傳感器與執行器網絡、更密集的跨系統交互接口以及更難以預測的耦合效應。這樣一來&#xff0c;單一功能的微小改動&#xff0c;可能會因復雜的依賴關系而引發意想不到的連鎖反應&#…

深度學習基礎1

一、張量 張量其實就是數組&#xff0c;不過是在深度學習中是這樣的叫法 1.張量的創建 &#xff08;1&#xff09;基本創建方式 torch.tensor()&#xff1a;根據指定數據創建張量 import torch import numpy as np """創建張量標量""" data to…

力扣網編程274題:H指數之普通解法(中等)

一. 簡介 本文記錄力扣網上涉及數組&#xff0c;排序方面的編程題&#xff1a;H指數。 二. 力扣網編程274題&#xff1a;H指數&#xff08;中等&#xff09; 給你一個整數數組 citations &#xff0c;其中 citations[i] 表示研究者的第 i 篇論文被引用的次數。計算并返回該研…

iptables防火墻,多IP環境下, 指定某個目的IP地址通過某個本地IP訪問,策略路由!

需求在CentOS 7.9中&#xff0c;若需從特定源IP&#xff08;10.0.0.3&#xff09;訪問目標網段 1.1.1.0/24方法一&#xff1a;策略路由&#xff08;支持網段&#xff09;1. 創建自定義路由表# 添加名為custom_table的路由表&#xff08;ID200&#xff09; echo "200 custo…

數字孿生技術引領UI前端設計新趨勢:數據可視化與交互設計的深度融合

hello寶子們...我們是艾斯視覺擅長ui設計、前端開發、數字孿生、大數據、三維建模、三維動畫10年經驗!希望我的分享能幫助到您!如需幫助可以評論關注私信我們一起探討!致敬感謝感恩!一、引言&#xff1a;數字孿生驅動 UI 設計的范式革新在大數據與三維可視化技術爆發的今天&…

【機器學習筆記 Ⅱ】6 激活函數

激活函數是神經網絡的核心組件&#xff0c;其作用遠不止“引入非線性”。以下是系統化的解析&#xff1a;1. 核心作用 (1) 引入非線性沒有激活函數&#xff1a;多層神經網絡等價于單層線性變換&#xff08;矩陣連乘仍是線性&#xff09;。加入激活函數&#xff1a;每層通過非線…

AI無標記動捕如何結合VR大空間技術打造沉浸式游戲體驗

隨著數字科技的迅猛發展&#xff0c;VR大空間技術正逐步成為各行業探索沉浸式體驗的重要方向。在VR游戲領域&#xff0c;市場對于高度沉浸式體驗的需求日益增長&#xff0c;而傳統VR游戲主要依賴手柄和基礎體感進行交互&#xff0c;而在VR大空間中&#xff0c;用戶可以通過全身…

Qt智能指針

在 Qt 框架中&#xff0c;智能指針用于自動管理對象的生命周期&#xff0c;防止內存泄漏。以下是 Qt 中主要的智能指針及其用法詳解&#xff1a;1. QScopedPointer作用&#xff1a;獨占所有權&#xff0c;超出作用域時自動釋放對象&#xff08;類似 std::unique_ptr&#xff09…

408第三季part2 - 計算機網絡 - 信道利用率

理解t1是發送幀的傳輸時間t2是確認幀的傳輸時間中間是傳播過程這整個過程就是發送周期任何題目會有以下幾種情況題目這里數據幀和確認幀長度是一樣的t1 t2然后把t1的傳輸數據算出來然后傳播是0.2sd停止等待 k1確認幀忽略t2 0t1算好后&#xff0c;求數據幀的長度下面是速率&…

Android framework 開發者模式下,如何修改動畫過度模式

Android framework 開發者模式下&#xff0c; 如何修改動畫過度模式 開發者模式下&#xff0c;動畫過度 模式1.0→0.5&#xff0c;按如下方式修改。 開發云 - 一站式云服務平臺 .../core/java/com/android/server/wm/WindowManagerService.java | 8 ---- 1 file changed, …

win11安裝paddlelabel并創建目標檢測項目

創建虛擬環境 conda create -n paddlelabel python3.11.11 conda activate paddlelabel通過以下命令安裝 pip install --upgrade paddlelabel輸入命令pdlabel運行paddlelabel&#xff0c;發現報錯&#xff1a; ModuleNotFoundError: Please install connexion using the flask …

關于Novatek B/G-R/G白平衡色溫坐標系再探究

目錄 一、準備知識 二、色溫坐標系的構建 三、Novatek白平衡色溫坐標系的再探究 2.1 直線白點框 2.2雙曲線白點框 四、仿真代碼 之前寫的一篇博文關于聯詠(Novatek )白平衡色溫坐標系探究-CSDN博客感覺邏輯上有些混亂,這個周末我又好好思考了下,以…

基于路徑質量的AI負載均衡異常路徑檢測與恢復策略

AI流量往往具有突發性、大象流&#xff08;大規模數據流&#xff09;占比高的特點&#xff0c;極易造成網絡擁塞熱點。一條質量不佳&#xff08;如高延遲、高丟包、帶寬受限&#xff09;的路徑&#xff0c;不僅自身無法有效傳輸數據&#xff0c;如果ECMP繼續向其分發流量&#…