前端/移动开发面试题更新 2026-08-05

在React开发中,如何实现类似innerHTML的效果来渲染HTML字符串?请说明具体方法和注意事项。

前端/移动开发安全意识技术原理React

考察说明

考查React中如何安全地插入HTML内容以及相关风险控制。

回答思路

  1. 【回答框架 1】React默认不直接支持innerHTML,但可以通过dangerouslySetInnerHTML属性实现,该属性接受一个对象,其中__html键对应HTML字符串。
  2. 【回答框架 2】使用dangerouslySetInnerHTML时,React不会对内容进行转义,因此容易引发XSS攻击,必须确保HTML来源可信或经过严格消毒。
  3. 【回答框架 3】更安全的做法是使用第三方库如DOMPurify对HTML进行清洗后再渲染,或者优先考虑使用React组件和JSX构建UI。
  4. 【回答框架 4】在动态渲染富文本场景中,也可以使用Quill或Slate等编辑器组件,它们内部处理了安全和渲染逻辑。
  5. 【关键点 1】dangerouslySetInnerHTML是React中替代innerHTML的主要方式。
  6. 【关键点 2】使用前必须进行XSS防护,如使用DOMPurify。
  7. 【关键点 3】尽量用JSX和组件化渲染替代直接注入HTML。
  8. 【易错点 1】直接注入未消毒的HTML字符串可能导致XSS攻击。
  9. 【易错点 2】dangerouslySetInnerHTML会覆盖子节点,使用时需谨慎。
  10. 【易错点 3】依赖库API时注意版本差异。