React中useRef hook的簡單用法
介紹
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)文章
React Hook useState useEffect componentD
這篇文章主要介紹了React Hook useState useEffect componentDidMount componentDidUpdate componentWillUnmount問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03
采用React編寫小程序的Remax框架的編譯流程解析(推薦)
這篇文章主要介紹了采用React編寫小程序的Remax框架的編譯流程解析(推薦),本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04
React從react-router路由上做登陸驗證控制的方法
本篇文章主要介紹了React從react-router路由上做登陸驗證控制的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05
React?+?Typescript領(lǐng)域初學(xué)者的常見問題和技巧(最新)
這篇文章主要介紹了React?+?Typescript領(lǐng)域初學(xué)者的常見問題和技巧,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-06-06

