React源码阅读—React.createRef

本文介绍了React中ref的三种用法:字符串、函数和对象,并详细解析了React.createRef的源码,帮助读者掌握如何获取和使用挂载的DOM节点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章目录

ref的用法

在使用React的开发过程中,我们经常会需要获取挂载到网页上的DOM节点,为它绑定事件或者是获取它的值(value)。那么这个时候我们就需要用到ref了。

ref的用法有三种:

  • 第一种是传入一个字符串:
<div ref="div"></div>

那么当节点渲染到页面上之后,通过this.ref.div就可以获取到这个节点对应的DOM对象了。

  • 第二种方法是传入一个函数:
<div ref={(div)=>{this.div = div;}}></div>

节点渲染到页面上之后,其对应的DOM对象会作为参数传入到函数中,然后在函数体内将其保存在this.div中。

  • 第三种方法是传入一个refObject
...
constructor(props){
    super(props);
    this.refObj = React.createRef();
}

...
<div ref={this.refObj}></div>

当节点渲染到页面上之后,就可以通过this.refObj.current来获得DOM对象了。

源码

export function createRef(): RefObject {
  const refObject = {
    current: null,
  };
  if (__DEV__) {
    Object.seal(refObject);
  }
  return refObject;
}

createRef方法的代码非常的少,其实就是返回了一个对象,对象里面有一个current属性仅此而已。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值