您的位置:首页 > 娱乐 > 明星 > React 中的useRef 和 useTransition

React 中的useRef 和 useTransition

2025/1/7 10:29:37 来源:https://blog.csdn.net/weixin_40629244/article/details/141072270  浏览:    关键词:React 中的useRef 和 useTransition

1. useRef简介

由于 React 会自动处理更新 DOM 以匹配你的渲染输出,因此你在组件中通常不需要操作 DOM。但是,有时你可能需要访问由 React 管理的 DOM 元素 。例如,让一个节点获得焦点、滚动到它或测量它的尺寸和位置。在 React 中没有内置的方法来做这些事情,所以你需要一个指向 DOM 节点的 ref 来实现。

useRef 是一个 React Hook,它能帮助引用一个不需要渲染的值。

const ref = useRef(initialValue)

2. useRef案例


import {useRef,useState} from "react"function App() {const [text,setText] = useState("");// 声明一个引用const userRef = useRef<HTMLInputElement>(null);const handleClick =()=>{// 当前引用的值setText(userRef.current?.value || "");// 引用的样式类console.log(userRef.current?.className);// red// 当前引用聚焦userRef.current?.focus();}return (<div>{/* 元素绑定引用 */}<input type="text" ref={userRef} className="red"/><button onClick={handleClick}>设置</button><div>{text}</div></div>)}export default App

3. useTransition简介

useTransition 是一个帮助你在不阻塞 UI 的情况下更新状态的 React Hook,允许你通过标记更新将提供的回调函数作为一个过渡任务。

const [isPending, startTransition] = useTransition()

4. useTransition 案例 


import {useState,useTransition} from "react"function App() {// 声明字符const [query,setQuery] = useState('');// 声明数组const [list,setList] = useState<any>([]);// 声明过渡const [isPedding,startTransition] = useTransition();// 点击操作const handleChange = (e:any) =>{// 设置输入setQuery(e.target.value)// 添加过渡startTransition(()=>{const arr = Array.from({length:5000}).fill(1);setList([...list,...arr]);})}return (<div><input type="text" onChange={handleChange}/><div>{isPedding?(<div>加载中……</div>):(list.map((item:number,index:number)=>{return <p key={index}>{query}</p>}))}</div></div>)
}export default App

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com