怎么做国际网站首页,淘宝网站推广怎么做,潍坊网站建设推广公司,邹平县城乡建设局网站介绍 useRef是react的自定义hook#xff0c;它用来引用一个不需要渲染的值。这篇文章会介绍useRef的简单用法。
使用场景
1.实现节流 通过useRef实现节流功能#xff0c;在限制时间内多次提交#xff0c;已第一次提交为准。
useThrottle.jsx
import {useEffect, useRef,…介绍 useRef是react的自定义hook它用来引用一个不需要渲染的值。这篇文章会介绍useRef的简单用法。
使用场景
1.实现节流 通过useRef实现节流功能在限制时间内多次提交已第一次提交为准。
useThrottle.jsx
import {useEffect, useRef, useState} from react;export const useThrottle (state, timeout) {// 计时器引用const timeoutRef useRef(null);// 计时器执行结束const timeoutOver useRef(true);// 节流值const [throttleValue, setThrottleValue] useState(state);useEffect((){// 存在定时器if (timeoutOver.currentfalse){return;}// 设置节流值timeoutRef.current setTimeout((){setThrottleValue(state);timeoutRef.current true;}, 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((){alert(throttleState)}, [throttleState])return 用戶名: input typetext value{state} onChange{(e) setState(e.target.value)}//
}
export default App2.操作dom元素
export default function Form() {const inputRef useRef(null);function handleClick() {inputRef.current.focus();}return (input ref{inputRef} /button onClick{handleClick}聚焦输入框/button/);
}