为什么 React Elements 会有 $$typeof 这个属性?

简评:debug 的时候看到 element 对象中有 $$typeof 这属性,于是查了一下这到底干嘛的。

我们知道,通过 JSX 创建一个 React Elements 时:

<marquee bgcolor="#ffa7c4">hi</marquee>

实际上调用的是 React.createElement 方法:

React.createElement(
  /* type */ 'marquee',
  /* props */ { bgcolor: '#ffa7c4' },
  /* children */ 'hi'
)

该方法会返回一个 React Element 对象,大概长这样:

{  type: 'marquee',  props: {    bgcolor: '#ffa7c4',    children: 'hi',  },  key: null,  ref: null,  $$typeof: Symbol.for('react.element'), //

相关推荐