-
Reactプロジェクトのセットアップ: Reactを使用してテキストをHTMLとしてレンダリングするには、まずReactプロジェクトをセットアップする必要があります。必要な依存関係をインストールし、コンポーネントを作成します。
-
テキストをHTMLエンティティとしてエスケープする: テキストをHTMLとしてレンダリングする際に、HTMLエンティティとしてエスケープする必要があります。これにより、特殊文字(<、>、&など)が正しく表示されます。Reactでは、
react-dom
パッケージに含まれるReactDOMServer
モジュールを使用してエスケープを行います。import { renderToStaticMarkup } from 'react-dom/server'; const text = '<p>Hello, world!</p>'; const html = renderToStaticMarkup(<div>{text}</div>);
上記の例では、
renderToStaticMarkup
関数を使用してテキストをHTMLとしてレンダリングしています。テキストを<div>
コンポーネント内にラップしていますが、任意のコンポーネントを使用することもできます。 -
レンダリングされたHTMLを表示する: レンダリングされたHTMLを表示するには、Reactコンポーネントを通常の方法で表示します。例えば、
ReactDOM.render
メソッドを使用してDOMにレンダリングすることができます。import React from 'react'; import ReactDOM from 'react-dom'; const App = () => { const text = '<p>Hello, world!</p>'; const html = renderToStaticMarkup(<div>{text}</div>); return <div dangerouslySetInnerHTML={{ __html: html }} />; }; ReactDOM.render(<App />, document.getElementById('root'));
上記の例では、
dangerouslySetInnerHTML
プロパティを使用してHTMLを直接セットしています。ただし、注意が必要です。このプロパティは、信頼できるソースからのみ使用する必要があります。
以上の手順に従うことで、ReactでテキストをHTMLとしてレンダリングすることができます。適切なコンポーネントと関数を使用することで、セキュリティ上のリスクを最小限に抑えることができます。