JSXとは?React特有の書き方を最短で理解する – 5/12

JSXは初心者が最初につまずくポイントです。この記事では「JSXの正体」「よくあるエラー」「必須ルール」に絞って解説し、迷わず書けるようにします。

JSXは何か:見た目はHTML、中身はJavaScript

JSXはJavaScriptの拡張構文で、最終的にはJavaScriptの関数呼び出しに変換されます。とはいえ初心者は「HTMLみたいに書ける」と捉えてOKです。

export default function App() {
  return <h1>Hello React</h1>
}

ポイントは「JSXも結局はJSなので、変数や式を埋め込める」ことです。

{} の意味:JavaScriptの式を埋め込む

JSXの中でJavaScriptの値を表示したいときは {} を使います。

const name = "Taro"
return <p>Hello {name}</p>

注意:{} の中は「文」ではなく「式」です。if文そのものは書けません。条件分岐は三項演算子や && を使います(後半で扱います)。

必須ルール:親要素は1つ

JSXは返す要素が1つである必要があります。次はNGです。

return (
  <h1>A</h1>
  <p>B</p>
)

回避は次のどちらか。

  • <div> で包む
  • <> ... </>(Fragment)で包む
return (
  <>
    <h1>A</h1>
    <p>B</p>
  </>
)

属性名の違い:className / htmlFor

JSXの属性はJavaScriptと衝突するものがあります。代表例は次です。

  • classclassName
  • forhtmlFor
<label htmlFor="email">Email</label>
<input id="email" className="input" />

初心者は「classが効かない」問題に遭遇しやすいので、まずここだけ覚えると良いです。

練習問題

  1. const price = 1200 を表示して「Price: 1200」と出してみましょう。
  2. Fragment <>...</> を使って、h1p を同時に返してみましょう。
  3. className を使って見出しにCSSクラスを付けてみましょう。

コメント

タイトルとURLをコピーしました