当前位置:首页 > React

react如何展示html

2026-03-31 02:45:52React

渲染原始 HTML 的方法

在 React 中直接渲染原始 HTML 需要使用 dangerouslySetInnerHTML 属性。该属性接收一个包含 __html 键的对象,值为需要渲染的 HTML 字符串。

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

安全注意事项

使用 dangerouslySetInnerHTML 会绕过 React 的 XSS 防护机制。必须确保 HTML 内容来自可信来源,并在渲染前进行净化处理。推荐使用 DOMPurify 等库过滤恶意代码:

import DOMPurify from 'dompurify';

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

替代方案

对于简单需求,可通过组件拆分实现类似效果。例如将 HTML 字符串转换为 React 元素数组:

react如何展示html

function parseSimpleHTML(html) {
  const tempDiv = document.createElement('div');
  tempDiv.innerHTML = html;
  return Array.from(tempDiv.childNodes).map((node, index) => {
    if (node.nodeType === Node.TEXT_NODE) {
      return node.textContent;
    }
    return React.createElement(node.tagName.toLowerCase(), { key: index });
  });
}

服务端渲染场景

在 Next.js 等框架中,需特别注意 dangerouslySetInnerHTML 的 hydration 匹配问题。建议将动态 HTML 处理放在 useEffect 中,或通过服务端直接输出净化后的内容。

标签: reacthtml
分享给朋友:

相关文章

如何手写一个react

如何手写一个react

手写一个简单的 React 创建一个基础的 React 实现需要理解其核心概念:虚拟 DOM、组件、状态管理和渲染。以下是一个简化版的 React 实现。 创建虚拟 DOM 虚拟 DOM 是真实 D…

如何记忆react

如何记忆react

理解核心概念 React的核心概念包括组件、状态(state)、属性(props)、生命周期方法(类组件)和钩子(函数组件)。掌握这些基础概念是记忆React的关键。组件是React应用的构建块,分为…

react如何验证

react如何验证

表单验证方法 在React中验证表单数据通常使用以下几种方式: 内置HTML5验证 利用HTML5原生表单验证属性如required、pattern等,结合form.noValidate属性禁用浏览…

react如何检测

react如何检测

检测 React 应用的方法 使用 PropTypes 进行类型检查 PropTypes 是 React 内置的类型检查工具,用于验证组件的 props 是否符合预期。在开发环境中,PropTypes…

react如何分

react如何分

React 分页实现方法 在 React 中实现分页功能可以通过多种方式完成,以下是几种常见的方法: 使用状态管理分页数据 在组件内部维护当前页码和每页数据量的状态,通过计算切片数据实现分页。…

react如何用echarts

react如何用echarts

在React中使用ECharts 安装ECharts和React专用封装库: npm install echarts echarts-for-react 基础使用示例 创建一个基础的柱状图组件:…