React 源码阅读-11
createRef
// ReactTypes定义的 react 类型
import type {RefObject} from 'shared/ReactTypes';
// an immutable object with a single mutable value
// 具有单个可变值的不可变对象
export function createRef(): RefObject {
const refObject = {
current: null,
};
if (__DEV__) {
Object.seal(refObject);
}
return refObject;
}
createRef
源码比较简短,就是返回一个带有current
属性的的refObject
对象.
这也是使用createRef
的时候需要使用const node = this.myRef.current;
Object.seal()
Object.seal()
方法封闭一个对象,阻止添加新属性并将所有现有属性标记为不可配置。当前属性的值只要可写就可以改变。
与Object.freeze()
区别
使用Object.freeze()冻结的对象中的现有属性是不可变的。用Object.seal()密封的对象可以改变其现有属性。
https://developer.mozilla.org...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。