当前位置:首页 > React

react如何展示html

2026-02-11 23:40:45React

渲染 HTML 字符串的方法

在 React 中直接渲染 HTML 字符串需要使用 dangerouslySetInnerHTML 属性。该属性允许插入原始 HTML,但需谨慎使用以避免 XSS 攻击。

function DisplayHTML({ htmlString }) {
  return <div dangerouslySetInnerHTML={{ __html: htmlString }} />;
}

使用场景示例

假设需要从后端接口获取一段 HTML 并展示:

const htmlFromBackend = '<p>This is <strong>HTML</strong> content</p>';

function App() {
  return <DisplayHTML htmlString={htmlFromBackend} />;
}

安全注意事项

使用 dangerouslySetInnerHTML 前必须确保 HTML 内容经过净化处理。推荐使用 DOMPurify 库过滤恶意代码:

import DOMPurify from 'dompurify';

function SafeHTML({ dirtyHTML }) {
  const cleanHTML = DOMPurify.sanitize(dirtyHTML);
  return <div dangerouslySetInnerHTML={{ __html: cleanHTML }} />;
}

替代方案

对于简单内容,可以考虑手动解析 HTML 字符串为 React 元素。使用正则表达式或第三方库如 html-react-parser:

import parse from 'html-react-parser';

function ParsedHTML({ htmlString }) {
  return <div>{parse(htmlString)}</div>;
}

性能优化

当需要频繁更新大量 HTML 内容时,建议使用 React.memo 避免不必要的重新渲染:

react如何展示html

const MemoizedHTML = React.memo(function({ html }) {
  return <div dangerouslySetInnerHTML={{ __html: html }} />;
});

标签: reacthtml
分享给朋友:

相关文章

react moment如何使用

react moment如何使用

安装 react-moment 通过 npm 或 yarn 安装 react-moment: npm install react-moment 或 yarn add react-moment 基本…

react 如何分页

react 如何分页

分页实现方法 在React中实现分页功能可以通过多种方式完成,具体取决于数据来源(如API或本地数据)和UI库的选择。以下是常见的实现方法: 使用本地数据分页 对于存储在组件状态或Context中…

如何启动react

如何启动react

安装Node.js 确保系统已安装Node.js(建议使用LTS版本),可通过官网下载并安装。安装完成后,在终端运行以下命令验证版本: node -v npm -v 创建React项目 使用官方工具…

react如何减少伤病

react如何减少伤病

减少React应用中的性能问题(避免"伤病") 优化React应用性能需要从组件渲染、状态管理和外部依赖等多方面入手。以下是关键优化策略: 使用React.memo进行组件记忆 对函数组件使用Rea…

vscode如何配置react

vscode如何配置react

配置 VSCode 进行 React 开发 安装必要插件 ES7+ React/Redux/React-Native snippets:提供 React 代码片段快速生成功能。 Prettier -…

如何安装antd react

如何安装antd react

安装 Ant Design (antd) 到 React 项目 确保已创建 React 项目,若未创建可通过以下命令初始化: npx create-react-app my-app cd my-ap…