You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ReactJS中两种 处理方式的差异及成因探究

React中两种文本处理方式的差异及原因

核心差异

  • 直接写在JSX标签内的文本(比如 <div> </div>),React会正确解析HTML实体,渲染出对应的不换行空格;如果把 赋值给变量再通过{space}插入JSX,React会转义这个实体,最终页面显示的是字符串 而非空格。
  • 从DOM结构看,前者生成的文本节点包含的是空格字符,后者生成的文本节点包含的是 这一串字符。

差异产生的原因

React对JSX里的两类内容采用了完全不同的处理逻辑:

  1. 直接文本内容:属于JSX的HTML语法部分,React会按照HTML规则解析,自动把HTML实体转换成对应的字符,这和普通HTML的解析逻辑一致。
  2. 表达式插入内容:也就是{}包裹的变量或JS表达式,React为了避免XSS攻击,会默认对所有输出内容做转义处理——把&、<这类特殊字符转换成HTML实体。所以当你把 (本质是&nbsp;)放进变量里,插入时会被转义成&amp;nbsp;,最终浏览器就会把它当成普通字符串显示。

你说的“一个是文本节点,另一个为变量”是关键诱因,但本质是React针对不同输入场景的安全解析策略不同:直接文本走HTML解析逻辑,表达式内容走安全转义逻辑。

内容的提问来源于stack exchange,提问作者kevin_CN

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 21:48:19