跳到主要内容

认识

2023年12月28日
柏拉文
越努力,越幸运

一、认识


react/src/ReactCreateRef.js
export function createRef() {
const refObject = {
current: null,
}
return refObject;
}

createRef只做了一件事,就是创建了一个对象,对象上的current属性,用于保存通过ref获取的DOM元素,组件实例等。对于类组件而言,类组件有一个实例instance能够维护像ref这种信息;但是由于函数组件每次更新都是一次新的开始,所有变量重新声明,如果这样每一次函数组件执行就会重新声明Ref,此时 ref 就会随着函数组件执行被重置,造成内容丢失。这就解释了在函数组件中为什么不能用createRef的原因