HTML JSX 変換|React の属性・タグに書き換え
HTML のマークアップを React の JSX に変換します。class を className、for を htmlFor にするなど、既存の HTML を React に移すときの書き換えを補助します。変換はブラウザ内で行います。
静的な HTML の見出しやフォームを React コンポーネントへ移す。
HTML
JSX
こんなときに使えます
- 静的な HTML の見出しやフォームを React コンポーネントへ移す。
- JSX の属性名やタグの書き方を、小さい HTML 例で確認する。
使い方
- HTML の要素を左側に入力します。
- 必要なら設定の Create function component を有効にして関数の形で出力します。
- 右側の JSX をコピーし、React プロジェクトでイベントや状態を追加します。
入力例
<label class="field" for="email">メール</label>
出力例
<label className="field" htmlFor="email"> メール </label>
仕様と注意点
HTML の構造を JSX として表現するツールです。元ページの CSS、外部 JavaScript、アセットをまとめて移植するものではありません。
クリック処理や DOM 操作を React の状態管理へ自動設計し直すことはできません。イベントハンドラーは変換後に確認してください。
関数形式を選ぶと Foo という名前のコンポーネントになります。用途に合う名前や props に変更し、実際に使う React 環境で検証してください。
入力内容は同じタブ内に一時保存され、再読み込みや同じ入力形式のツールで再表示される場合があります。共用端末では、使い終わったら入力欄をクリアしてください。
よくある質問
class や for の名前が変わるのはなぜですか?
JSX では React のプロパティ名を使うため、class は className、ラベルの for は htmlFor になります。CSS のクラス値や参照する要素 ID はそのまま使えます。
変換したのに見た目が同じになりません。
JSX だけでは元ページのスタイルは含まれません。CSS の読み込み、画像のパス、親要素のレイアウトを確認してください。マークアップの変換と、画面全体の移植は別の作業です。
SVG アイコンにも使えますか?
SVG を React コンポーネントとして扱う場合は関連ツールの SVG → JSX も使えます。そちらはサーバーで変換するため、入力データの扱いも確認してください。