React中ref的理解
(1)React的ref有3种用法:
- 字符串
dom节点上使用,通过this.refs[refName]来引用真实的dom节点
<input ref="inputRef" /> //this.refs['inputRef']来访问
- 回调函数
React 支持给任意组件添加特殊属性。ref 属性接受一个回调函数,它在组件被加载或卸载时会立即执行。
- 当给 HTML 元素添加 ref 属性时,ref 回调接收了底层的 DOM 元素作为参数。
- 当给组件添加 ref 属性时,ref 回调接收当前组件实例作为参数。
- 当组件卸载的时候,会传入null
- ref 回调会在componentDidMount 或 componentDidUpdate 这些生命周期回调之前执行。
<input ref={(input) => {this.textInput = input;}} type="text" /> //HTML 元素添加 ref 属性时
<CustomInput ref={(input) => {this.textInput = input;}} /> //组件添加 ref 属性
- React.createRef()
在React 16.3版本后,使用此方法来创建ref。将其赋值给一个变量,通过ref挂载在dom节点或组件上,该ref的current属性
将能拿到dom节点或组件的实例
<
React中ref的理解相关推荐
- React中refs的理解
React中refs的理解 Refs提供了一种方式,允许我们访问DOM节点或在render方法中创建的React元素. 描述 在典型的React数据流中,props是父组件与子组件交互的唯一方式,要修 ...
- React中ref的使用方法
React中ref的使用方法 在react典型的数据流中, props 传递是父子组件交互的唯一方式:通过传递一个新的 props 值来使子组件重新 re-render ,从而达到父子组件通信.当然, ...
- React中JSX的理解
React中JSX的理解 JSX是快速生成react元素的一种语法,实际是React.createElement(component, props, ...children)的语法糖,同时JSX也是J ...
- react中ref、createRef、React.forwardRef分别是什么?如何使用?
一.react中ref.createRef.React.forwardRef (1)Ref 转发是一项将 ref 自动地通过组件传递到其一子组件的技巧.对于大多数应用中的组件来说,这通常不是必需的.但 ...
- react中ref的使用
在react中获取真实dom的时候就需要用到ref属性,具体使用如下 var MyComponent = React.createClass({handleClick: function() {con ...
- react中ref已废弃,请使用React.createRef()
在项目开发过程中难免会从操作dom,在react中获取dom的方式 (1)ref(已废弃) //绑定ref <input ref="getInput"/> //获取do ...
- React中ref的使用方法和使用场景(详解)
摘要 不管在Vue中还是React,如果我们想使用一个元素的DOM,不需要通过JS中操纵DOM的方法,它们提供了一个专属的API就是ref. 而Vue中的ref可能比较简单,这一篇主要讲一下如何在Re ...
- react中ref使用方法解析
文章目录 什么是ref string类型 createRef创建 写法一: 写法二: 什么是ref 组件不是真实的DOM节点,在react开发中,官方也不建议直接去操作原生的DOM.组件的DOM节点是 ...
- 【React学习】React中ref的用法
ref可以让react方便快捷地拿到DOM元素,ref的用法主要有两种. 用法1:回调形式的ref 在ref中传入一个回调函数,回调函数的默认参数就是元素对象,给组件加一个属性用来存储元素对象. &l ...
最新文章
- Java通过JDBC来连接SqlServer数据库
- MyBatis MapperScannerConfigurer配置——MyBatis学习笔记之八
- springboot中java泛型使用
- 如何从零规划一个产品?
- 云计算——让学习更轻松
- python生成器generator:深度学习读取batch图片
- jitter 如何优化网络_抖音优化该怎么做?
- IntelliJ IDEA 如何导出安卓(Android)apk文件 详细教程
- 一个解决方案创建多个项目问题解决方案
- Weblogic配置和部署
- UPF和POWER Domain
- 皮卡丘为什么不进化_为什么皮卡丘不会变身?原因让人想哭
- Python中的Bunch模式
- 如何在Android设备上识别读取美国驾照信息
- 3D仿真教程:ThingJS全套环境搭建方案
- AssertionError: Egg-link *** does not match installed location ***
- tcp的finrst flood攻击与防御
- ajax调用ashx页面内的方法
- linux nfs root无权限,nfs root 无权限_如何允许root用户访问NFS?
- howler.js_异步加载音频文件并使用howler.js播放