devtools-hub

HTML to JSX

HTMLをReact/JSXに変換 — class→className・style文字列→オブジェクト・void要素自己閉じ

ReactHTML変換開発者向け

HTMLを貼り付けるとReact/JSXに即変換。class→className、for→htmlFor、tabindex→tabIndexなどの属性名変換、インラインstyle文字列→styleオブジェクト記法(camelCase)、onclick→onClick等のイベントハンドラ変換、imgやinputなどvoid要素の自己閉じタグ補完、HTMLコメント→JSXコメント変換をすべて自動で処理します。

広告

HTML → JSX Converter

413441

HTML

413

JSX

441
<div className="container" tabIndex="0">
  <h1 className="title">Hello World</h1>
  <label htmlFor="email">Email</label>
  <input type="email" id="email" readOnly maxLength="100" />
  <img src="logo.png" alt="Logo" />
  <br />
  <button onClick="handleClick()" className="btn btn-primary">
    Click me
  </button>
  {/* This is a comment */}
  <p style={{ color: 'red', fontSize: '14px', fontWeight: 'bold' }}>
    Styled text
  </p>
</div>

変換ルール

classclassName
forhtmlFor
tabindextabIndex
readonlyreadOnly
maxlengthmaxLength
onclickonClick
onchangeonChange
style="..."style={{ ... }}
<!-- -->{/* */}
<br><br />
<img><img />
<input><input />

Features

  • class → className、for → htmlFor など主要属性名を自動変換
  • style="..." → style={{ camelCase: 'value' }} オブジェクト記法に変換
  • onclick・onchange 等のイベント属性を onClick・onChange にキャメルケース変換
  • <img> <input> <br> など void 要素を自己閉じタグ形式に補完
  • HTMLコメント <!-- --> を JSXコメント {/* */} に変換
  • tabindex・readonly・maxlength 等の属性名も正しく変換

Desktop App

デスクトップ版を入手する

Windows 向けアプリ版はすべての機能をフルで使えます。BOOTH で配布中。

BOOTH で見る
広告

HTMLからJSXへの変換 — ReactコンポーネントへのHTML移植ガイド

HTMLをReactコンポーネントに移植する際には、属性名の変換・スタイルのオブジェクト化・void要素の自己閉じなど複数の変換が必要です。HTML to JSXコンバーターを使えばこれらを自動化できます。

HTMLとJSXの主な違い

JSXはJavaScript内でHTMLに似た記法を使えますが、いくつかの重要な違いがあります。最も頻出なのが`class`→`className`と`for`→`htmlFor`の変換です。`class`はJavaScriptの予約語であるため、ReactはDOMプロパティ名に合わせて`className`を使います。同様に`for`も`htmlFor`が正しいJSX記法です。

インラインstyleのオブジェクト記法

HTMLでは`style="color: red; font-size: 14px"`のように文字列で記述しますが、JSXではJavaScriptオブジェクトとして`style={{ color: 'red', fontSize: '14px' }}`の形式で渡します。CSSプロパティ名はキャメルケースに変換します(font-size→fontSize、background-color→backgroundColor)。値は文字列として渡す必要があります(数値はpx省略可)。

Void要素の自己閉じタグ

HTMLでは`<img src="x">`や`<input>`のようにvoid要素(内容を持てない要素)は終了タグなしで記述できますが、JSXではXMLルールに従い`<img src="x" />`のように自己閉じタグが必須です。対象はimg・input・br・hr・link・meta・area・base・col・embed・param・source・track・wbrなどです。

イベントハンドラの変換

HTMLのイベント属性`onclick`・`onchange`・`onsubmit`などは、JSXでは`onClick`・`onChange`・`onSubmit`のようにキャメルケースで記述します。また、HTMLでは属性値に直接JavaScriptコードを書きますが(`onclick="handleClick()"`)、JSXでは関数参照を渡すのが一般的です(`onClick={handleClick}`)。

Related Tools

base64-studio

Base64 エンコード & デコード

開発者向けテキストエンコード

使ってみる →

BOOTH

JSON Studio

JSON フォーマッター & バリデーター

JSON開発者向けフォーマッター

使ってみる →

BOOTH

color-deck

カラーコード変換 & パレット保存

カラーデザイン開発者向け

使ってみる →

BOOTH

このツールを共有する