当前位置:首页 > React

react 如何显示html

2026-02-11 19:05:52React

在 React 中显示 HTML

React 默认会将所有内容作为字符串处理,直接渲染 HTML 字符串可能会导致安全问题(如 XSS 攻击)。以下是几种安全显示 HTML 的方法:

使用 dangerouslySetInnerHTML

React 提供了 dangerouslySetInnerHTML 属性来直接插入 HTML,但需谨慎使用以避免安全风险。

function DisplayHTML() {
  const htmlString = '<p>This is <strong>HTML</strong> content</p>';

  return <div dangerouslySetInnerHTML={{ __html: htmlString }} />;
}

使用第三方库

一些库如 html-react-parser 可以安全地解析和渲染 HTML 字符串:

npm install html-react-parser
import parse from 'html-react-parser';

function DisplayHTML() {
  const htmlString = '<p>Parsed HTML content</p>';
  return <div>{parse(htmlString)}</div>;
}

手动清理 HTML

使用 DOMPurify 等库清理 HTML 后再渲染:

react 如何显示html

npm install dompurify
import DOMPurify from 'dompurify';

function DisplayHTML() {
  const dirtyHtml = '<p>Unsafe <script>alert("xss")</script> HTML</p>';
  const cleanHtml = DOMPurify.sanitize(dirtyHtml);

  return <div dangerouslySetInnerHTML={{ __html: cleanHtml }} />;
}

注意事项

  • 直接渲染用户提供的 HTML 存在安全风险,务必使用清理工具。
  • 对于静态可信内容,dangerouslySetInnerHTML 是简单直接的解决方案。
  • 动态内容推荐结合 DOMPurify 或专用解析库处理。

标签: reacthtml
分享给朋友:

相关文章

react如何销毁

react如何销毁

React 组件销毁的机制 在 React 中,组件的销毁通常由 React 的生命周期管理。当组件从 DOM 中移除时,React 会自动触发销毁相关的生命周期方法。以下是关键点: 组件的销毁通常…

react如何浮动

react如何浮动

使用 CSS 实现浮动 在 React 中实现浮动效果可以通过 CSS 的 float 属性完成。在组件的样式文件或内联样式中直接设置 float: left 或 float: right。…

react如何创建框架

react如何创建框架

React 创建框架的方法 React 本身是一个用于构建用户界面的 JavaScript 库,但可以通过多种方式创建框架或项目结构。以下是几种常见的方法: 使用 Create React App…

react如何重写alert

react如何重写alert

重写 React 中的 alert 方法 在 React 中,直接使用原生 alert 会破坏用户体验,通常需要自定义弹窗组件替代。以下是实现方法: 使用自定义弹窗组件 创建可复用的弹窗组件,替代原…

react如何渲染图片

react如何渲染图片

在React中渲染图片的方法 使用<img>标签直接引入本地图片 将图片文件放入项目目录(如src/assets),通过相对路径引入。需注意Webpack可能需要配置file-loader…

react详情如何展示

react详情如何展示

React 详情展示的实现方法 在 React 中展示详情内容可以通过多种方式实现,具体取决于应用场景和需求。以下是几种常见的实现方案: 条件渲染 利用状态管理控制详情内容的显示与隐藏。通过点击事件…