在react组件中获取DOM元素的三种方式

2023-10-27

在react组件中获取DOM元素的三种方式

1, 给标签设置ref属性, 通过this.refs调用  (老版本语法,将要废除)
    <h1 ref="myH1"></h1>
    this.refs.myH1

2, 在构造器中创建ref全局变量, 在标签中ref属性动态绑定这个全局变量, 通过全局变量的current字段调用
    this.myH2 = React.createRef() 
    <h2 ref={this.myH2}></h2>
    this.myH2.current

3, 在标签ref属性绑定函数, 在函数中定义全局变量赋值, 通过全局变量调用
    <h3 ref={ ele => this.myH3 = ele }></h3>
    this.myH3


4, 使用hook语法查找DOM
    const d1 = useRef()
    <div id="d1" ref={d1}>div1</div>
    d1.current

5, 使用hook语法查找DOM
    const d2 = useRef()
    <div id="d2" ref={el => d2=el}>div1</div>
    d2


注意: 
1, 在父组件中用ref获取子组件对象, 必须保证子组件是类组件, 函数式组件获取结果是undefined
2, 父组件使用ref获取子组件对象后, 可以对子组件状态数据和函数执行调用和修改

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在react组件中获取DOM元素的三种方式 的相关文章

  • 如何从 JavaScript 中计算 HTML 表格的渲染高度?

    调整窗口大小时 我需要知道表格有多大 以便我可以动态地很好地适应中间的所有其他内容 表格高度仅取决于动态加载的内容 如何在 JavaScript 中计算表格的渲染高度 您可以使用element offsetHeight https deve
  • javascript 使用 onclick 创建按钮

    我正在尝试使用 javascript 创建一个具有 onclick 事件的按钮 该事件调用 head 中定义的函数 该函数接收相对于按钮的 dom 对象作为参数 我该怎么做呢 ex
  • AngularJS 使用 $apply 而不使用 $scope

    我开始使用 AngularJS 并且接受了用它来编写控制器的约定 而不是用 scope 所以我的控制器看起来像这样 myApp controller SomeController function this myModel id 1 nam
  • 将 Javascript 变量转换为 PHP 变量

    我想使用由 videoel getCurrentTime 函数返回给我的 javascript 变量 并将其转换为 php 变量 以便我能够将其添加到我的 SQL 插入查询中 例如 INSERT INTO tblData VALUES ph
  • 如何根据按钮单击折叠和展开 Kendo UI 树视图中的所有树节点?

    这是行不通的 您可以使用此代码 1 崩溃 折叠kendoTree查看文档 http docs kendoui com api web treeview methods collapse treeview kendoTreeView var
  • 来自 DataURL 的 Blob?

    Using FileReader s readAsDataURL 我可以将任意数据转换为数据 URL 有没有办法将数据 URL 转换回Blob使用内置浏览器 API 的实例 用户 Matt 一年前提出了以下代码 如何在javascript中
  • 未捕获的类型错误:this.props.signinUser 不是一个函数(…)

    src actions index js import axios from axios const ROOT URL http localhost 3090 export function signinUser email passwor
  • 为什么将数据存储为元素的属性存在风险?

    我一直在读同样的东西 直接在 DOM 元素上存储属性值是有风险的 因为可能会发生内存泄漏 但有人可以更详细地解释这些风险吗 按属性 我假设您指的是 DOM 元素上的属性 DOM 元素上的自定义属性安全吗
  • JQuery 动画文本

    找到简单 简单的动画文本是非常困难的 喜欢这个网站上的 内爆 http codecanyon net item jquery text animation full screen preview 233445 http codecanyon
  • Bing.com 如何创建放大的缩略图?

    当我使用 Bing com 搜索图像时 我发现它们的图像经过精心裁剪和排序 当您将鼠标放在图像上时 会弹出另一个窗口 其中显示放大的图像 我想在我的程序中做同样的事情 我检查了他们页面的源代码 他们正在使用 javascript 但我仍然不
  • 使用 Javascript / Jquery 的本地存储(不使用 HTML5)

    我想在 javascript 或 jquery 中复制本地存储概念 类似于 HTML5 但不幸的是我不知道如何开始 任何人都可以建议如何使用 javascript 或 jquery 实现本地存储 不使用 HTML5 这是一个有点愚蠢的差事
  • 使用 jQuery 仅从字符串末尾修剪空格

    我知道 jQuery trim 函数 但我需要的是一种仅从字符串末尾修剪空格的方法 而不是开头 So str this is a string 会成为 str this is a string 有什么建议么 Thanks 您可以使用正则表达
  • 光滑的轮播缓动示例

    我正在使用 Slick Carousel http kenwheeler github io slick http kenwheeler github io slick 但不知道如何合并不同的幻灯片切换 有人有例子可以分享吗 这是我目前拥有
  • JQuery DataTable 单元格从行单击

    我正在尝试在 jquery 数据表上实现一个函数 该函数返回单击行的第一列和第四列 我正在遵循这个示例 它允许我操作单击的行http datatables net examples api select single row html ht
  • ReactJS:从没有 onChange 事件的 props 中选择默认值?

    所以 我只是想知道我是否绝对需要在 React 中的选择组件上有一个 onChange 事件处理程序 我有一个道具传递我想要选择的选项的默认值 如果我有的话 它就没有问题
  • Chrome Javascript 调试器暂停时不会重新加载页面

    有时 当我在 Chrome 中调试某些 javascript 并且暂停了 javascript 时 如果我尝试重新加载页面 chrome 只会 继续 调试器 单步执行到下一个断点 似乎没有任何方法可以强制 javascript 完全停止运行
  • 常规 JavaScript 可以与 jQuery 混合使用吗?

    例如 我可以采用这个脚本 来自 Mozilla 教程 https developer mozilla org en Canvas tutorial Basic usage
  • 在声明组件选择器时添加指令 - Angular 7

    我正在学习 Angular 并通过单击按钮动态创建组件 我正在尝试使用 Angular Material 的拖放功能来拖动这些创建的组件以对它们进行排序 我的基本组件 html 中有以下代码 div style margin 20px di
  • ThreeJS无法加载Json文件

    首先 我已经读过这个问题 https stackoverflow com questions 17201888 three js exporter export object not working with jsonloader r58没
  • 在 Google Apps 脚本中的文本前插入换行符

    我需要在 Google 文档中的某些文本之前插入一些换行符 尝试过这种方法但出现错误 var body DocumentApp getActiveDocument getBody var pattern WORD 1 var found b

随机推荐

  • Nginx做代理时X-Forwarded-For信息头的处理

    如今利用nginx做负载均衡的实例已经很多了 针对不同的应用场合 还有很多需要注意的地方 本文要说的就是在通过CDN 后到达nginx做负载均衡时请求头中的X Forwarded For项到底发生了什么变化 下图为简单的web架构图 先来看
  • MySQL笔记——数据库与数据表(内附例子)

    目录 创建数据库 查看数据库 查看所有数据库 查看数据库使用的字符编码 修改数据库 删除数据库 选择 打开 数据库 创建数据表 基础创建 用select查询的结果创建数据表 将表2复制给表1 修改数据表 增加列 修改列 修改字段名称 修改字
  • “字节一年,人间三年!”

    关注后回复 进群 拉你进程序员交流群 大家好 我在网上冲浪的时候看到一个问题 图片 看到这个问题的时候我就想起了在江湖上流传已久的一句话 字节一年 人间三年 然后我看到了这个问题下的一个高赞回答 分享给了我一位曾经在字节工作过接近三年时间的
  • 新系统申请软件著作权详细操作说明

    关于其他问题 请参见之前的文章 1 软件著作权申请时源程序 文档和其他文件的编写说明 本文主要对源程序 文档和其他文件的格式进行说明 2 计算机软件著作权申请表中开发运行环境 技术特点等项目的编写指南 本文主要对申请表中主要功能 技术特点
  • FPGA学习日记(七)HDMI图像数据传输

    一 实现目标 将像素数据通过HDMI传输 在显示器上显示 二 数据流传输 HDMI常采用TMDS传输 上升沿复位 方式 1 通过三个通道分别可传入8位的rgb视频信号 2位的控制信号 4位的音频信号或其他数据信号 其中行场同步信号在blue
  • 小猴coderush优秀奖

    12月20日那个周末非常忙 本来不想让妞参加学而思小猴的code rush 但我自己看了介绍视频后 发现这个竞赛系统很有意思 小猴子想尽办法吃香蕉 我特别看重了这对c 里 循环 的练习 而且整个练习的过程还是很有趣和有成就感的 所以就让妞报
  • 嵌入式系统开发与应用——基于视觉的机器人SLAM入门实践1

    嵌入式系统开发与应用 基于视觉的机器人SLAM入门实践1 一 OpenCV的安装与配置 1 下载OpenCV3 4 1并解压到ubuntu相应目录上 2 下载安装依赖库和编译工具cmake 1 更新ubuntu软件 2 安装cmake 3
  • 使用vue开发,图文页面,实现点击图片可以预览

    在某个有文字 图片 按钮等元素的页面 比如像各种APP的新闻页面 其中 实现用户点击图片可以预览图片 点击其它元素不会预览 使用 vant 的 ImagePreview 组件实现预览图片 实现效果如下图 main js 引入 ImagePr
  • 调制深度(modulation depth)

    调制深度 也叫调制度 modulation depth 指的是调制波的幅度与载波幅度的比值 常用百分数表示 即 p t A m t cos 2 pi f t 则 md peak m t A 或者 md pmax pmin pmax pmin
  • JAVA-企业微信-自建应用H5的应用配置

    用公司下的企业微信账号登录企业微信服务商后台 https open work weixin qq com 在应用管理页面 进入已创建的应用并配置应用主页 接下来 在底部的网页授权及JS SDK 配置可信域名和回调域名 这个怎么校验的 我有篇
  • defaults write 权限修复$ cd ~/Library/Containers/com.apple.mail $ ls ls: cannot open directory '.': Op

    This may be caused by permissions On Mojave Mail is blocked from apps by default In Bash you will see this by default cd
  • 尚硅谷java项目<云尚办公系统>超详细(三)角色管理前端环境搭建

    一 前端框架 1 vue element admin vue element admin是基于element ui 的一套后台管理系统集成方案 功能 https panjiachen github io vue element admin
  • 深入理解C++中的mutable关键字

    mutalbe的中文意思是 可变的 易变的 跟constant 既C 中的const 是反义词 在C 中 mutable也是为了突破const的限制而设置的 被mutable修饰的变量 将永远处于可变的状态 即使在一个const函数中 我们
  • element-ui -- 照片墙

    一 介绍 element ui提供了上传照片的组件 el upload能够给用户提供上传照片的服务 照片墙是指能够向服务器上传一组照片 二 基础使用
  • PHP基于Web的subversion用户管理系统(源代码+论文)

    本系统主要是基于Web的subversion系统的用户管理系统 在开源软件世界 并行版本系统 cvs 一直是版本控制长久以来的唯一选择 但是 和其它许多工具一样 cvs开始显露出衰老的迹象 而subversion 正是以cvs继任者的面目出
  • 华为mate10开机android,华为Mate 10双清教程

    Android手机使用一段时间后 因为一些APP产生的垃圾及部分软件之间的不兼容 会造成Android手机越用越慢 使用Android系统的华为mate10也不例外 如果你的mate10使用一段时间后 速度明显变慢了 不放将手机内的资料备份
  • Apache Eagle:实时安全监控方案

    原创 2016 03 27 朱洁 hadoop技术学习 Eagle是eBay开源的一个分布式实时安全监控方案 通过离线训练模型集合实时流引擎监控 能立即监测出对敏感数据的访问或恶意的操作 并立即采取应对的措施 下图是Eagle的架构 Eag
  • STM32单片机基础10——使用ADC读取气体传感器数据(MQ-2)

    本篇详细的记录了如何使用STM32CubeMX配置STM32L431RCT6的ADC外设 读取MQ 2气体传感器的数据并通过串口发送 1 准备工作 硬件准备 开发板 首先需要准备一个开发板 这里我准备的是STM32L4的开发板 BearPi
  • 【计算机组成原理】笔记(B站王道考研)

    课程 B站 王道考研 截图来自课程 计算机硬件 p4 计算机硬件的基本组成 冯诺依曼结构 理解冯诺依曼计算机 在计算机系统中 软件和硬件在逻辑上等价 冯诺依曼计算机特点 计算机由运算器 控制器 存储器 输入设备 输出设备五大部件组成 指令和
  • 在react组件中获取DOM元素的三种方式

    在react组件中获取DOM元素的三种方式 1 给标签设置ref属性 通过this refs调用 老版本语法 将要废除 h1 h1 this refs myH1 2 在构造器中创建ref全局变量 在标签中ref属性动态绑定这个全局变量 通过