React 源码阅读-11_042

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对象.node

这也是使用createRef的时候须要使用const node = this.myRef.current;react

Object.seal()

Object.seal()方法封闭一个对象,阻止添加新属性并将全部现有属性标记为不可配置。当前属性的值只要可写就能够改变。this

Object.freeze()区别

使用Object.freeze()冻结的对象中的现有属性是不可变的。用Object.seal()密封的对象能够改变其现有属性。code

https://developer.mozilla.org...