当前位置:首页 > 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

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 库来过滤恶意代码:

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 如何显示html

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

标签: reacthtml
分享给朋友:

相关文章

react 如何分页

react 如何分页

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

react如何读

react如何读

React 的发音 React 的发音为 /riˈækt/(音标),读作“瑞-艾克特”。其中: “Re” 发音类似英文单词 “read” 的开头部分。 “act” 发音与英文单词 “act” 一致。…

如何构建react

如何构建react

构建 React 项目的步骤 安装 Node.js 和 npm 确保系统已安装 Node.js(包含 npm)。可通过命令行验证: node -v npm -v 使用 Create React Ap…

react如何发布

react如何发布

发布React应用的步骤 构建生产版本 使用以下命令生成优化后的生产版本代码,代码会被压缩并移除开发环境中的调试工具: npm run build 构建完成后会生成build文件夹,包含所有静态资源…

react 如何循环

react 如何循环

循环渲染列表 在React中,循环渲染列表通常使用map方法。map可以遍历数组并返回一个新的React元素数组。 const items = ['Apple', 'Banana', 'Orange…

react如何通信

react如何通信

React 组件通信方式 React 组件间的通信方式多样,具体选择取决于组件关系和场景需求。以下是常见方法: 父子组件通信 父组件通过 props 向子组件传递数据,子组件通过回调函数通知父组件…