为什么React只允许HTML实体的子集?

时间:2017-09-04 11:10:21

标签: javascript html reactjs character-encoding

我在此问题上发现的唯一相关documentation只是说我可以在React中使用HTML实体。

但是,情况似乎并非完全如此。例如,&∑有效,而|#却没有。这是一个有意识的设计决定吗?如果是,那是什么原因?

示例:

const App = () => (
  <div>
    <h2>&amp;, &sum; - this works. &vert;, &num; - this doesn't.</h2>
  </div>
);

Example in CodeSandbox

3 个答案:

答案 0 :(得分:4)

ReactJS仅支持 HTML4特殊实体

这可能是故意的,尽管文档不清楚。我的猜测是HTML实体通常用于掩盖代码中使用的字符,但由于ReactJS具有Unicode支持,因此不需要使用可以用Unicode表示的新实体。

您可以找到HTML4实体列表here

答案 1 :(得分:0)

很抱歉,但不幸的是只支持HTML4元素

答案 2 :(得分:0)

&vert; and &num;是来自 HTML5规范的新character entities &amp; and &sum;来自 HTML4规范 character entities(更好地可视化here)。

JSX渲染结果显示仅允许来自HTML4规范的字符实体。