为什么 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'), //