React 源碼閱讀-11_041

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...
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章