>_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

413 → 451 字

HTML

413 字

JSX

451 字
<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>

⚠ onclick などのイベント属性は、() => { … } の関数に置き換えました。中のコードはそのままなので、コンポーネントの関数として書き直してください。

変換ルール

class→className
for→htmlFor
tabindex→tabIndex
readonly→readOnly
maxlength→maxLength
onclick="go()"→onClick={() => { go() }}
data-id→data-id(そのまま)
{ }(文字)→{'{'} {'}'}
style="..."→style={{ ... }}
<!-- -->→{/* */}
<br>→<br />
<img>→<img />
<input>→<input />

Features

  • class → className、for → htmlFor など主要属性名を自動変換
  • style="..." → style={{ camelCase: 'value' }} オブジェクト記法に変換
  • onclick="go()" 等のイベント属性を onClick={() => { go() }} の関数に変換
  • data-*・aria-* はハイフンのまま残し、SVG の stroke-width・xlink:href は strokeWidth・xlinkHref に変換
  • 文字の中の { } と <style> の中身を JSX で壊れない形に変換。外側の要素が複数ならフラグメントで包む
  • <img> <input> <br> など void 要素を自己閉じタグ形式に補完
  • HTMLコメント <!-- --> を JSXコメント {/* */} に変換
  • tabindex・readonly・maxlength 等の属性名も正しく変換

Desktop App

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

Web版にはない機能をデスクトップ版で追加しています。

  • 変換結果をJSXファイルとして保存(component.jsx・ダイアログで保存先選択)
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

Lockfile Diff

package-lock.json の更新前後を比較 — 版の動きをメジャー/マイナー/パッチで分類

npmバージョン管理開発者向け

使ってみる →

Text Encoding Checker

文字コードを判定して UTF-8 に変換 — 化けた文字列の復元も

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

使ってみる →

Line Ending Inspector

改行コードを検査 — CRLF / LF / CR の内訳と混在、BOMの有無

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

使ってみる →

このツールを共有する