やさしいReact入門①

React

React初心者が最初に覚えたい!JSX(TSX)の基本ルールとHTMLとの違い

Reactを学び始めると、最初に戸惑うのがJSX(TSX)ではないでしょうか。

  • JavaScriptなのにHTMLみたいなコードが書かれている…
  • HTMLと何が違うの?

今回は、React開発で必ず使うJSX(TSX)の基本ルールと、HTMLとの違いについて、初心者向けに分かりやすく解説します。


JSXとは?

JSXとは、JavaScript(またはTypeScript)の中でHTMLのようなタグを書ける記法です。

Reactでは、画面に表示するUIをJavaScriptの中で記述します。

例えば、次のようなコードです。

function App() {
  return (
    <h1>Hello React!</h1>
  );
}

export default App;

一見するとHTMLを書いているように見えますが、これはJavaScript(TypeScript)のコードです。

ポイント
JSXは「JavaScriptの中でHTMLのような構文を書ける仕組み」と考えると理解しやすくなります。


JSXの基本ルール

まずは必ず覚えておきたいルールが2つあります。

① 複数行をreturnするときは括弧で囲む

return (
  <div>
    <h1>タイトル</h1>
    <p>説明です</p>
  </div>
);

複数行になる場合は、丸括弧で囲むのが基本です。

② returnする要素は1つだけ

これはReact初心者が最もつまずきやすいポイントです。

NG例

return (
  <h1>タイトル</h1>
  <p>説明です</p>
);

これではエラーになります。

理由は、親要素が存在しないためです。

OK例

return (
  <div>
    <h1>タイトル</h1>
    <p>説明です</p>
  </div>
);

覚えておこう!
Reactではreturnする要素は必ず1つにまとめる必要があります。


HTMLとの違い

JSXではHTMLタグをほぼそのまま利用できますが、一部の属性は書き方が異なります。

class → className

HTMLでは

<div class="box">

ですが、JSXでは

<div className="box">

ReactではclassではなくclassNameを使用します。

style属性はオブジェクトで指定する

HTMLでは

<p style="color: blue;">

ですが、JSXでは

<p style={{ color: "blue" }}>

となります。

これはJavaScriptのオブジェクトを書いているだけです。

const style = {
  color: "blue"
};

<p style={style}>

このように、変数にまとめて利用することもできます。


波括弧 {} の役割

JSXで最も重要なのが波括弧({})です。

波括弧の中にはJavaScriptの式を書くことができます。

const courseName = "React";
<p>{courseName}</p>

このように書くと、「React」と表示されます。

ポイント
変数・計算式・関数の戻り値など、JavaScriptの式は波括弧で囲んで表示できます。


コメントアウトの書き方

HTMLでは

<!-- コメント -->

ですが、JSXでは

{/* コメント */}

となります。


イベントの書き方

イベントの指定方法もHTMLとは少し異なります。

HTMLでは

<button onclick="click()">

ですが、JSXでは

<button onClick={handleClick}>

となります。

ポイントはイベント名をキャメルケースで記述することです。

  • onClick
  • onChange
  • onSubmit

HTMLのonclickとは異なるため、最初は意識して覚えておきましょう。


実際には「TSX」を使う

ReactをTypeScriptで開発する場合、実際に編集するファイルは次のようになります。

App.tsx

TSXは

JSX + TypeScript

と考えると分かりやすいでしょう。

そのため、React + TypeScript環境ではJSXではなくTSXを書くことになります。


この記事のまとめ

  • JSX(TSX)はJavaScript・TypeScriptの中でHTMLのような記法を書ける
  • returnする要素は必ず1つにまとめる
  • 複数行のreturnは括弧で囲む
  • classではなくclassNameを使う
  • styleはJavaScriptオブジェクトで指定する
  • 波括弧 {} の中にはJavaScriptの式を書ける
  • コメントは{/* … */}
  • イベント名はonClickのようにキャメルケースで書く
  • TypeScriptでは.tsxファイルを使用する

まとめ

JSX(TSX)はReact独自の記法ですが、基本的な考え方はHTMLとJavaScript(TypeScript)の組み合わせです。

最初はclassNamestyle、波括弧の使い方などに戸惑うかもしれません。しかし、基本ルールを押さえてしまえば、HTMLやJavaScriptの知識をそのまま活かしてReact開発を進められます。

React学習では、今回紹介した内容が土台になります。まずは基本ルールをしっかり身につけていきましょう!

コメント

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