React【1】【ref常用法】

embedded/2024/12/23 6:20:21/

文章目录

  • 前言
  • 用途
    • 1. 储存
    • 2. 储存dom句柄ref


前言

react组件每次调用setState的时候都会重新执行函数组件或者class组件

用途

1. 储存

每次调用setState时,组件函数都会重新执行。下面这种情况点击提交后,再点击取消,会发现定时器trimId1仍然执行了。这是因为trimId1被重新赋值了。

function App() {const [msg, setMsg] = useState("未提交");let trimId1 = 0;const trimId2 = useRef(0);console.log("更新重新执行函数");const onAsyncSend = () => {trimId1 = setTimeout(() => {alert("发送1");}, 3000);trimId2.current = setTimeout(() => {alert("发送2");}, 3000);setMsg("等待提交");};const onCancel = () => {clearTimeout(trimId1);clearTimeout(trimId2.current);};return (<><div><button onClick={onAsyncSend}>提交</button><button onClick={onCancel}>取消</button><p>{msg}</p></div></>);
}

2. 储存dom句柄ref

import {useRef} from "react"
function com(){const refDom = useRef(0);return <><input ref={refDom}/></>
}

http://www.ppmy.cn/embedded/114605.html

相关文章

【Vue系列四】—Vue学习历程的知识分享!

前言 本篇讲述Vue中路由的使用 一、路由 路由就是一种对应关系 之前的后端渲染&#xff08;存在性能问题&#xff09; Ajax 前端渲染&#xff08;性能ok&#xff0c;但是不支持浏览器的前进后退操作&#xff09; SPA&#xff08;Single Page Application&#xff09;单页应…

练习题 - Django 4.x Models Meta 元数据选项

在 Django 中&#xff0c;Meta 类是模型定义的一部分&#xff0c;用于配置模型的各种行为特性。通过使用 Meta 元数据选项&#xff0c;开发者可以控制模型的排序、权限、数据库表名等属性&#xff0c;提供了灵活性和定制化。在实际的 web 应用开发中&#xff0c;合理配置 Meta …

【Python】探索 Errbot:多功能聊天机器人框架

不是旅行治愈了你&#xff0c;是你在路上放过了自己。 在当今的数字化时代&#xff0c;聊天机器人已成为企业与客户互动、提升工作效率和增加乐趣的重要工具。Errbot是一个高度可扩展的聊天机器人框架&#xff0c;它允许开发者使用Python轻松创建和定制机器人。本文将介绍Errb…

mongodb 安装教程

mongodb 安装教程&#xff1a; https://blog.51cto.com/u_13646338/5449015 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-5.0.9.tgz tar -zxvf mongodb-linux-x86_64-rhel70-5.0.9.tgz -C /opt/module/ [roothadoop102 module]# mv mongodb-linux-…

K8s 之控制器的定义及详细调用案例

什么是控制器 官方文档&#xff1a; https://v1-30.docs.kubernetes.io/zh-cn/docs/concepts/workloads/controllers/ 控制器也是管理pod的一种手段 自主式pod&#xff1a;pod退出或意外关闭后不会被重新创建控制器管理的 Pod&#xff1a;在控制器的生命周期里&#xff0c;始…

线程池总结

线程池的执行流程总结&#xff1a; 从创建线程池的参数分析&#xff1a; 1.提交新线程&#xff0c;线程池会在线程池中分配一个空闲线程&#xff0c;用于执行线程任务。 2.参数(int corePoolSize)&#xff1a;核心线程数 如果线程池中不存在空闲线程&#xff0c;则线程池会判…

使用jenkins打包unity工程

Apache配置 安装&#xff1a;arch arm64 brew install httpd开启&#xff1a;brew services start httpd重启&#xff1a;brew services restart httpd停止&#xff1a;brew services stop httpd 配置文件路径&#xff1a;/opt/homebrew/etc/httpd/httpd.conf&#xff0c;默认监…

Android 增加宏开关控制android.bp

android 全局定义的宏开关控制不同的feature。android 包含c 和 java&#xff0c; java只能通过全局属性作为判断&#xff0c; c&#xff0c;在android.bp中需要通过go语言定义协助&#xff0c;可以参考 Android.bp正确姿势添加宏控制编译指南_android.bp如何实现控制逻辑-C…