我推荐使用由milesj创建的Interweave。它是一个了不起的库,它利用了许多巧妙的技术来解析 HTML 并将其安全地插入 DOM。
Interweave 是一个反应库,可以安全地渲染 HTML、过滤属性、使用匹配器自动换行文本、渲染 emoji 字符等等。
- Interweave 是一个强大的 React 库,它可以:
- 安全地呈现 HTML,而无需使用 dangerouslySetInnerHTML。
- 安全地去除 HTML 标签。
- 自动 XSS 和注入保护。
- 使用过滤器清理 HTML 属性。
- 使用匹配器插入组件。
- 自动链接 URL、IP、电子邮件和主题标签。
- 渲染表情符号和表情符号。
- 以及更多!
使用示例:
import React from 'react';
import { Markup } from 'interweave';
const articleContent = "<p><b>Lorem ipsum dolor laboriosam.</b> </p><p>Facere debitis impedit doloremque eveniet eligendi reiciendis <u>ratione obcaecati repellendus</u> culpa? Blanditiis enim cum tenetur non rem, atque, earum quis, reprehenderit accusantium iure quas beatae.</p><p>Lorem ipsum dolor sit amet <a href='#testLink'>this is a link, click me</a> Sunt ducimus corrupti? Eveniet velit numquam deleniti, delectus <ol><li>reiciendis ratione obcaecati</li><li>repellendus culpa? Blanditiis enim</li><li>cum tenetur non rem, atque, earum quis,</li></ol>reprehenderit accusantium iure quas beatae.</p>"
<Markup content={articleContent} /> // this will take the articleContent string and convert it to HTML markup. See: https://milesj.gitbook.io/interweave
//to install package using npm, execute the command
npm install interweave