Skip to content
Go back

读《Why Do React Elements Have a $$typeof Property?》

Table of contents

Open Table of contents

JSX 转换后的 React 元素对象示例

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

$$typeof 属性的作用及为何使用 Symbol 类型

作用说明:

兼容性说明:

总结

给 React 元素对象加上 $$typeof(采用 Symbol),本质是为了提高防伪能力、减少高阶 XSS 攻击面,是一项典型的安全设计。只做字符串转义只能覆盖简单攻击,只有严密的对象校验才能更好地保障前后端协作中的安全性。


Share this post on:

Previous Post
读《How Does setState Know What to Do?》
Next Post
读《How Does React Tell a Class from a Function?》