Virtual DOMを基盤とする、React互換のモダンなコンポーネントAPIを備えた高速な約4kBのUIライブラリ。
remarkablemark/html-react-parser
HTML文字列をReact要素に変換するパーサー。Node.jsとブラウザーの両方で動作します。
- スター
- 2,431
- フォーク
- 144
- 未解決の Issue
- 12
- 最終コミット
- 昨日
これは何?
html-react-parserはHTML文字列を1つ以上のReact要素に変換するため、CMS、データベース、APIから取得したマークアップを、dangerouslySetInnerHTMLを使わずにReactコンポーネント内でレンダリングできます。サーバー(Node.js)とクライアント(ブラウザー)の両方で動作し、CDNからUMDバンドルとして読み込むこともできます。
parse関数には、任意のoptionsオブジェクトを渡せます。replaceオプションを使うと、特定のDOMノードを独自のReact要素に置き換えられます。子要素や属性の処理には、domToReactやattributesToPropsなどのヘルパーを利用できます。transformオプションでは、パース後の各要素を変更できます。また、libraryオプションを使えば、Reactの代わりにPreactや独自のUIライブラリを使用できます。そのほか、空白の処理を指定するtrim、サーバー側のパース設定を指定するhtmlparser2、ブラウザーのTrusted Types向けのtrustedTypePolicyなどのオプションがあります。
このライブラリはHTMLをサニタイズしないため、それ自体ではXSS対策になりません。信頼できないソースからの入力には、サニタイズを行うか、Content Security PolicyとTrusted Typesで保護する必要があります。
主な機能
- 01HTML文字列を、コンポーネント内でそのままレンダリングできるReact要素に変換します。
- 02サーバーサイドレンダリング用のNode.jsとブラウザーの両方で動作します。
- 03replaceオプションを使って、条件に一致するDOMノードを独自のReact要素に置き換えられます。
- 04transformオプションを使って、変換後の各要素を変更できます。
- 05libraryオプションを使って、Preactや独自のUIライブラリを利用できます。
- 06空白やパースの動作を制御するtrimオプションとhtmlparser2の設定に対応しています。
ユースケース
- CMSやMarkdownパイプラインから取得したHTMLコンテンツをReactアプリ内でレンダリングする。
- レンダリング時に、リンクや画像などの埋め込みタグをReactコンポーネントに置き換える。
- Node.jsのReactアプリケーションでHTMLフラグメントをサーバーサイドレンダリングする。
クイックスタート
- 1
npmでインストール
npm install html-react-parser --save - 2
HTML文字列をインポートして解析
使う前に知っておきたいこと
- XSS対策はされていません。READMEにはHTMLをサニタイズしないと記載されています。
- 不正なHTMLはサニタイズされません。
- htmlparser2のオプションはサーバー(Node.js)でのみ動作し、ブラウザーでは動作しません。
トピック
よくある質問
- html-react-parser とは?
- HTML文字列をReact要素に変換するパーサー。Node.jsとブラウザーの両方で動作します。 html-react-parserはHTML文字列を1つ以上のReact要素に変換するため、CMS、データベース、APIから取得したマークアップを、dangerouslySetInnerHTMLを使わずにReactコンポーネント内でレンダリングできます。サーバー(Node.js)とクライアント(ブラウザー)の両方で動作し、CDNからUMDバンドルとして読み込むこともできます。
- html-react-parser は無料で使えますか?ライセンスは?
- html-react-parser は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- html-react-parser は今もメンテナンスされていますか?
- 活発にメンテナンス中。html-react-parser の最終コミットは 2026年11月6日 です。
- html-react-parser は何に使えますか?
- CMSやMarkdownパイプラインから取得したHTMLコンテンツをReactアプリ内でレンダリングする。 レンダリング時に、リンクや画像などの埋め込みタグをReactコンポーネントに置き換える。 Node.jsのReactアプリケーションでHTMLフラグメントをサーバーサイドレンダリングする。
- html-react-parser のインストール方法は?
- npmでインストール: npm install html-react-parser --save HTML文字列をインポートして解析
- html-react-parser はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/remarkablemark/html-react-parser
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Web、サーバー、ネイティブの各プラットフォームで利用できる、組み合わせ可能なコンポーネントからインタラクティブなUIを構築するJavaScriptライブラリ。
Virtual DOMではなく、細粒度のリアクティビティでJSXを実際のDOM更新にコンパイルする宣言的なJavaScript UIライブラリ。
組み込みオブジェクトを拡張せずに、each、map、reduce、filterなどの関数型ヘルパーを提供するJavaScriptユーティリティライブラリ。
日常的なコーディング作業に使える、個別にインポート可能な400以上の小さなマイクロモジュールを備えた、依存関係ゼロのJavaScriptユーティリティライブラリです。
TakumiとFormeを基盤に、shadcn/uiとの連携を想定して作られた、PDF生成用のコピペ可能なReactコンポーネント集。