React中useRef hook的簡單用法
更新時間:2024年01月10日 15:06:29 作者:卡卡舅舅
useRef是react的自定義hook,它用來引用一個不需要渲染的值,這篇文章介紹useRef的簡單用法,感興趣的朋友一起看看吧
介紹
useRef是react的自定義hook,它用來引用一個不需要渲染的值。這篇文章會介紹useRef的簡單用法。
使用場景
1.實現(xiàn)節(jié)流
通過useRef實現(xiàn)節(jié)流功能,在限制時間內(nèi)多次提交,已第一次提交為準。
useThrottle.jsx
import {useEffect, useRef, useState} from "react"; import {useEffect, useRef, useState} from "react"; export const useThrottle = (state, timeout) => { // 計時器引用 const timeoutRef = useRef(null); // 計時器執(zhí)行結(jié)束 const existTimeOut = useRef(false); // 節(jié)流值 const [throttleValue, setThrottleValue] = useState(state); useEffect(()=>{ // 存在定時器 if (existTimeOut.current){ return; } existTimeOut.current = true; // 設(shè)置節(jié)流值 timeoutRef.current = setTimeout(()=>{ setThrottleValue(state); existTimeOut.current = false; }, timeout) },[state]) return throttleValue; }
app.jsx(使用樣例)
import './App.css'; import {useEffect, useState} from "react"; import {useThrottle} from "./demo/UseRefDemo"; const App =()=>{ const [state, setState] = useState('') const throttleState = useThrottle(state, 10000); useEffect(()=>{ console.log('延遲執(zhí)行:' + throttleState); }, [throttleState]) return <> 用戶名: <input type='text' value={state} onChange={(e)=> setState(e.target.value)}/> </> } export default App
實現(xiàn)效果
2.操作dom元素
export default function Form() { const inputRef = useRef(null); function handleClick() { inputRef.current.focus(); } return ( <> <input ref={inputRef} /> <button onClick={handleClick}> 聚焦輸入框 </button> </> ); }
實現(xiàn)效果
到此這篇關(guān)于React之useRef hook的文章就介紹到這了,更多相關(guān)React useRef hook內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:
- React?Hooks的useState、useRef使用小結(jié)
- React?Hooks中?useRef和useImperativeHandle的使用方式
- react如何利用useRef、forwardRef、useImperativeHandle獲取并處理dom
- React Hooks之useRef獲取元素示例詳解
- react中useRef的應(yīng)用使用詳解
- 重新理解?React?useRef原理
- 教你react中如何理解usestate、useEffect副作用、useRef標識和useContext
- React中useRef的具體使用
- React組件設(shè)計過程之仿抖音訂單組件
- react如何使用useRef模仿抖音標題里面添加標簽內(nèi)容
相關(guān)文章
關(guān)于react+antd樣式不生效問題的解決方式
最近本人在使用Antd開發(fā)時遇到些問題,所以下面這篇文章主要給大家介紹了關(guān)于react+antd樣式不生效問題的解決方式,文中通過圖文以及實例代碼介紹的非常詳細,需要的朋友可以參考下2022-07-07React中獲取數(shù)據(jù)的3種方法及優(yōu)缺點
這篇文章主要介紹了React中獲取數(shù)據(jù)的3種方法及優(yōu)缺點,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02