milesjによって作成されたInterweaveの使用をお勧めします。HTMLを解析してDOMに安全に挿入するための巧妙な手法を採用した驚異的なライブラリーです。
Interweaveは、HTMLの安全なレンダリング、属性のフィルター、マッチャーによるテキストの自動折り返し、絵文字のレンダリングなどを行うための反応ライブラリーです。
- Interweaveは、次のことができる堅牢なReactライブラリです。
- dangerouslySetInnerHTMLを使用せずにHTMLを安全にレンダリングします。
- 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