search

Found

info 概要

HTMLコードをReactのJSXに変換するツール。class→className・style文字列→オブジェクト・onclick→onClick・自己閉じタグ・コメント記法の5項目を一括書き換え

📘 使い方

  1. HTMLコードを左の入力欄に貼り付ける
  2. 右側に変換されたJSXが表示される
  3. 必要なら入力を編集して結果を見比べる

HTML→JSX変換

コピーしました
Article

HTML→JSXコンバーター|ReactにそのままペーストできるJSXへ変換

既存のHTMLをReactコンポーネントに移したいとき、classforの属性名、インラインstyleの書き方がそのままでは通らずビルドエラーになります。このツールはHTMLを貼り付けるだけで、Reactが受け付けるJSXへ5項目を一括で書き換えます。

💡 このツールについて

LP制作で作ったマークアップやデザインツールから書き出したHTMLを、Reactプロジェクトへ取り込む場面は多くあります。ところがJSXはJavaScriptの式なので、classclassNameforhtmlForという予約語回避が必要で、onclickなどのイベント属性もキャメルケース(onClick)にしなければ動きません。さらにインラインのstyle="color: red"はオブジェクト記法style={{color: 'red'}}に変える必要があり、<img><br>といった空要素は<img />のように明示的に閉じないとパースエラーになります。

このツールは入力したHTMLに対して、(1) class/forなどの属性名変換、(2) onclick系イベントのキャメルケース化、(3) インラインstyle文字列のオブジェクト化、(4) 自己閉じタグの補完、(5) <!-- -->コメントの{/* */}記法化、の5項目を一度に処理します。変換結果はコピーしてそのままコンポーネントに貼り込めます。

🧐 よくある質問

Q. class以外にどの属性が変換されますか? A. forhtmlFortabindextabIndexmaxlengthmaxLengthcolspancolSpanなど、JSXで命名規則が変わる主要属性に対応しています。

Q. インラインstyleはどう変換されますか? A. style="color: red; line-height: 1.5"style={{color: 'red', lineHeight: 1.5}}のように、ハイフン区切りのプロパティ名をキャメルケースに変え、純粋な数値はそのまま、それ以外は文字列として展開します(14pxのように単位付きの値は'14px'と文字列になります)。

Q. SVGや<input>などの空要素も閉じられますか? A. imgbrinputhrmetaなどHTML仕様の空要素を検出し、/>を補って閉じます。

Q. JSXのルート要素が複数あるとReactで怒られませんか? A. このツールは構文変換のみを行います。複数要素を返す場合は<>...</>(フラグメント)で囲むなど、貼り付け後の調整は別途必要です。

Q. コメントはどう扱われますか? A. <!-- メモ -->はJSXで有効な{/* メモ */}形式に置き換えます。

📚 HTMLとJSXの「似て非なる」関係

JSXはHTMLによく似た見た目を持ちますが、実体はJavaScriptの構文糖衣です。ブラウザはJSXを直接理解できず、ビルド時にトランスパイラがReact.createElementの呼び出しへ変換します。classが使えないのは、JavaScriptでclassがクラス定義の予約語だからで、forfor文と衝突するため別名が割り当てられています。こうした差分は数が多く暗記しづらいため、機械的に置換できる部分を自動化しておくと、移行時の取りこぼしを減らせます。