React - useRef的基本使用
import React, { Component, useState, useEffect, useRef } from 'react' import { useControl } from './hooks/useControl' import ReactDOM from 'react-dom/client' import { nanoid } from 'nanoid' import { // 🤴🏻🟨 推荐使用as将路由重命名为Router HashRouter, BrowserRouter as Router, Route, Link, NavLink, Switch, Redirect, } from 'react-router-dom' import { legacy_createStore as createStore } from 'redux' import store from './store' /** * 🧿🍄💥学习目标:hooks补充 - useRef * 作用:创建ref对象 * 等价于: React.createRef() * 场景: * 1. 获取DOM元素 * 2. 可以保存任意不需要渲染的数据 * 3. 获取组件实例对象 */ const root = ReactDOM.createRoot(document.getElementById('root')) function AppCom01() { // 使用useRef创建ref对象 const iptRef = useRef() const handleClick = () => { console.log('iptRef ===> ', iptRef) iptRef.current.focus() // 输入框DOM获取焦点 } const [isShow, setIsShow] = useState(true) return ( <> <div> {/* // 将iptRef挂载到DOM元素上 */} <input ref={iptRef} type="text" /> <button onClick={handleClick}>点我input获得光标</button> {isShow && <Child />} <button onClick={() => setIsShow(!isShow)}>点击卸载</button> </div> </> ) } // 👨🏻 1. 挂载之后开启定时器 // 👨🏻 2. 卸载时清除定时器 // 👨🏻 3. 可以保存任意不需要渲染的数据 function Child() { const timerIdRef = useRef() useEffect(() => { // 赋值任意数据到current timerIdRef.current = setInterval(() => { console.log('定时器开启了 -----> ') }, 500) }, []) useEffect(() => { return () => { clearInterval(timerIdRef.current) } }, []) return <div>Child</div> } const divNode = ( <div> <AppCom01 /> </div> ) root.render(divNode)
学而不思则罔,思而不学则殆!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具