当前位置:首页 > React

react 如何显示html

2026-01-15 10:14:04React

渲染原始 HTML

在 React 中直接插入原始 HTML 需要使用 dangerouslySetInnerHTML 属性。这个属性允许将 HTML 字符串直接渲染到 DOM 中,但需要注意潜在的安全风险(如 XSS 攻击)。

const rawHTML = '<p>This is <strong>raw</strong> HTML content.</p>';

function MyComponent() {
  return <div dangerouslySetInnerHTML={{ __html: rawHTML }} />;
}

使用第三方库

对于更复杂的 HTML 渲染需求,可以使用专门处理 HTML 的库如 html-react-parser

react 如何显示html

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

const htmlString = '<div><h1>Title</h1><p>Paragraph</p></div>';

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

处理动态内容

当需要动态加载 HTML 内容时(如从 API 获取),应确保内容经过净化处理。可以使用 DOMPurify 库来过滤恶意代码:

react 如何显示html

npm install dompurify
import DOMPurify from 'dompurify';

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

组件化方案

对于需要重复使用的 HTML 片段,可以将其封装为可复用组件:

function HTMLRenderer({ html }) {
  return <div dangerouslySetInnerHTML={{ __html: html }} />;
}

// 使用示例
<HTMLRenderer html="<span style='color:red'>Red Text</span>" />

样式处理注意事项

当渲染的 HTML 包含内联样式时,React 可能会添加自动生成的样式前缀。如需保留原始样式,可能需要额外的 CSS 处理:

// 禁用 React 的样式自动补全
<div dangerouslySetInnerHTML={{ __html: html }} suppressHydrationWarning />

标签: reacthtml
分享给朋友:

相关文章

如何评价react native

如何评价react native

React Native 的优势 跨平台开发效率高:基于 JavaScript 和 React 语法,可同时开发 iOS 和 Android 应用,减少重复代码量。性能接近原生:通过原生组件渲染,性能…

如何降低react版本

如何降低react版本

降低 React 项目版本的步骤 检查当前 React 版本 运行以下命令查看项目中安装的 React 当前版本: npm list react 或 yarn list react 修改…

如何下载react

如何下载react

下载 React 的方法 通过 npm 或 yarn 安装 React 可以通过包管理器 npm 或 yarn 安装。确保已安装 Node.js(包含 npm),然后在项目目录中运行以下命令:…

如何创建react

如何创建react

创建React项目的步骤 使用Create React App工具快速搭建React项目。确保已安装Node.js(版本需≥14.0.0)和npm(版本需≥5.6)。 打开终端或命令行工具,运行以下…

react如何清理

react如何清理

清理 React 项目的方法 清理未使用的依赖项 运行 npm prune 或 yarn install --production 可以移除 node_modules 中未在 package.json…

react如何debugger

react如何debugger

调试 React 应用的方法 使用浏览器开发者工具进行调试 React 开发者工具(React DevTools)是调试 React 应用的必备工具。安装 Chrome 或 Firefox 扩展后,可…