react源码3 - ref

ref可以获取dom节点或者react元素的实例,一般有三种使用方法

1. string ref

react源码3 - ref_第1张图片
image.png

使用方法就是在react元素上使用一个ref属性,然后传入一个字符串,最后react在完成这个节点的渲染之后,就会在this.ref这个对象上增加一个这个字符串的key,这个key对应的value就是这个react元素的实例。如果是一个function component则会报错。如果要对function component使用ref,就必须把function component用forwardRef给包起来


react源码3 - ref_第2张图片
image.png

2. function

react源码3 - ref_第3张图片
image.png

3. createRef

react源码3 - ref_第4张图片
image.png

createRef会创建一个对象,这个对象默认值是 {current: null},把这个this.objRef放到ref属性里后,这个节点对应的实例就会挂载到这个对象的current上。

你可能感兴趣的:(react源码3 - ref)