当前位置: 首页 > article >正文

React-useRef

  • useRef
    useRef 是 React 的一个 Hook,用来创建一个 可变的引用对象,这个引用对象在组件的整个生命周期内保持不变。
    翻译成人话就是,用useRef创建一个相对共享的对象管理器,它里面装的内容的读写是不会引起界面渲染的。
    典型的应用就是将某个界面控件放到里面,然后在适当的时候调出操作,比如获取 DOM 元素的引用,可以像原生 JavaScript 的 document.getElementById 一样,获取 DOM 元素。
import React, { useRef } from 'react';function FocusInput() {const inputRef = useRef(null);const handleClick = () => {inputRef.current.focus();  // 获取 input 元素并聚焦};return (<div><input ref={inputRef} type="text" /><button onClick={handleClick}>点击聚焦</button></div>);
}

如果要手动存放,则直接 const handlerRef = useRef(null); handlerRef.current = ‘abcd’/1234/handlerRef.current = handler; current可以装任何类型

比如如果在页面初始化时需要调用后端api,我一般将操作放在useLayoutEffect里面,但是useLayoutEffect会被至少执行两次! 下面用useRef防止重复调用:

// 使用 ref 确保 updateCounter 只执行一次const counterUpdatedRef = useRef(false);// 使用 useLayoutEffect 确保在渲染完成后再设置返回处理函数useLayoutEffect(() => {const doit = async () => {// 确保 updateCounter 只执行一次if (!counterUpdatedRef.current && curTask?.id) {await updateCounter();counterUpdatedRef.current = true;}...};doit();}, [curTask, setBackHandler])
http://www.lryc.cn/news/2380259.html

相关文章:

  • 无损耗协议:PROFINET和EtherNet IP网关的高效安装指南
  • 【知识产权出版社-注册安全分析报告-无验证方式导致安全隐患】
  • std::ranges::iota
  • C++(24):容器类<list>
  • 【C++】不推荐使用的std::allocator<void>
  • 基于OAuth2+SpringSecurity+Jwt实现身份认证和权限管理后端服务
  • vue3 el-table实现字段可编辑
  • 基于React的高德地图api教程005:圆形标记的绘制、删除、修改
  • liunx定时任务,centos定时任务
  • 三种嵌入式开发常用的组网方式
  • ubuntu 20.04 ping baidu.coom可以通,ping www.baidu.com不通 【DNS出现问题】解决方案
  • 城市排水管网流量监测系统解决方案
  • Ubuntu Desktop QEMU/KVM中使用Ubuntu Server 22.04配置k8s集群
  • YOLOv8 在单片机上的几种部署方案
  • 后端框架(1):Mybatis
  • linux下tcp/ip网络通信笔记1,
  • SqlHelper 实现类,支持多数据库,提供异步操作、自动重试、事务、存储过程、分页、缓存等功能。
  • 语音识别——声纹识别
  • window 显示驱动开发-报告图形内存(三)
  • 安全运维 -- linux磁盘挂载到windows
  • 使用 Apache POI 生成 Word 文档
  • 高防服务器流量“清洗”什么意思
  • UE5 GAS框架解析内部数据处理机制——服务器与客户端
  • Unity实用技能-UI定位总结
  • 开源GPU架构RISC-V VCIX的深度学习潜力测试:从RTL仿真到MNIST实战
  • 服务间的“握手”:OpenFeign声明式调用与客户端负载均衡
  • 26、DAPO论文笔记(解耦剪辑与动态采样策略优化,GRPO的改进)
  • JQuery 禁止页面滚动(防止页面抖动)
  • Android Coli 3 ImageView load two suit Bitmap thumb and formal,Kotlin(七)
  • Halcon与C#:工业级机器视觉开发