JA
マイツール

HTMLをJSXに変換(React)

HTMLをReact用のJSXに変換します。className、htmlFor、styleオブジェクト、キャメルケースのイベントとSVG属性、自己終了タグ、波括弧のエスケープに対応します。

JSX
トップレベルのノード数
2
<>フラグメントで囲みました

インラインハンドラーをアロー関数に変換しました。その中の`this`はもう要素を指さないため、event.currentTargetを使ってください。Reactのハンドラーは「return false」を無視するので、代わりにevent.preventDefault()を呼んでください。

マイツール →
広告

HTMLをReactコンポーネントにコピーすると、最初のclass属性で壊れます。JSXはJavaScriptなので、classの代わりにclassName、forの代わりにhtmlFor、文字列の代わりにstyleオブジェクト、キャメルケースのイベント名とSVG属性名、すべての要素を閉じること、テキスト内の波括弧のエスケープが必要です。テンプレート、デザインツール、スニペットサイトのHTMLを貼り付けると、有効なJSXが得られます。必要なら関数コンポーネントで囲み、Reactで動作が異なる点は備考で知らせます。

使い方

  1. HTMLを貼り付けます。断片でもページ全体でも構いません(変換されるのは<body>だけです)。
  2. 必要ならコンポーネント名を入力して、export default functionで囲みます。
  3. value/checkedをdefaultValue/defaultCheckedに変えるか、インラインハンドラーをアロー関数に変えるかを選びます。
  4. JSXをコピーし、備考を確認します。

計算式

class → className · for → htmlFor · tabindex → tabIndex · style="a-b: c" → style={{ aB: "c" }} · onclick="f()" → onClick={(event) => { f() }} · <br> → <br />

属性はReactのDOMプロパティ名に従い、data-*とaria-*はそのままです。<svg>内では、ハイフン付きの属性がキャメルケースになり(stroke-width → strokeWidth)、小文字の名前が復元されます(viewbox → viewBox)。JSXが予約している文字はエスケープされます。{ と } は {'{'} と {'}'} に、> は &gt; になります。コメントは{/* */}になります。トップレベルのノードが複数ある場合は<>フラグメントで囲みます。省略されていた終了タグ(li、p、td…)は補われます。

計算例

サンプルでは、class="card"がclassNameになり、styleの文字列はstyle={{ padding: "16px", borderRadius: "8px" }}に、for="email"はhtmlFor、<input … value="" autofocus tabindex="1">は<input … defaultValue="" autoFocus tabIndex="1" />になります。onclick="subscribe()"はonClick={(event) => { subscribe() }}になり、「登録する {無料}」の波括弧はエスケープされ、SVG内のviewboxとstroke-widthはviewBoxとstrokeWidthになります。結果はSignupCardコンポーネントで囲まれ、コメントは{/* 登録カード */}としてフラグメント内に残ります。

よくある質問

valueがdefaultValueになるのはなぜですか?

Reactでは、valueを指定すると入力が制御コンポーネントになり、onChangeハンドラーがないとユーザーは入力できません。defaultValueは初期値だけを設定してフィールドを編集可能なままにするため、元のHTMLの動作と一致します。自分でstateとonChangeを追加する場合は、オプションのチェックを外してください。

インラインのイベントハンドラーはそのまま使って安全ですか?

コードを含むアロー関数になりますが、thisはもう要素を指さず、return falseでイベントがキャンセルされることもありません。通常は、ロジックをコンポーネント内の名前付き関数に移すほうがよいでしょう。

SVGアイコンにも使えますか?

はい。stroke-width、fill-rule、clip-path、xlink:hrefなどのSVG属性はReactの名前に変換され、viewboxのような小文字の名前も修正されます。

HTMLはアップロードされますか?

いいえ。変換はブラウザ内で行われます。

出典

最終更新:

このツールを引用する
APA

kakaoCalc. (2026, November 8). HTMLをJSXに変換(React). https://kakao.mobile/ja/tools/html-to-jsx-tool/

MLA

“HTMLをJSXに変換(React).” kakaoCalc, 8 Nov. 2026, kakao.mobile/ja/tools/html-to-jsx-tool/.

広告