LoginSignup
1
1

More than 5 years have passed since last update.

JSXの基本

Posted at

はじめに

JSXとは、JavaScriptの拡張構文です。
実行時、内部的にはJavaScriptにトランスパイルされます。

具体的には、React.createElementメソッドに変換される

複数の要素を列挙することができない

複数の要素を列挙することができないため、以下のコードは不可です。

sample.js
React.DOM.render(
  <h1>Hello, World</h1>
  <p>こんにちは世界</p>,
  document.getElementById('root')
);

複数の要素全体を<div>などの要素で括る

sample.js
React.DOM.render(
  <div>
    <h1>Hello, World</h1>
    <p>こんにちは世界</p>,
  </div>
  document.getElementById('root')
);

または、<React.Fragment>で、複数の子要素をまとめる

sample.js
React.DOM.render(
  <React.Fragment>
    <h1>Hello, World</h1>
    <p>こんにちは世界</p>,
  </React.Fragment>
  document.getElementById('root')
);

空要素は<~ />で終える

JSXでは、XMLと同じように、空要素は<~ />で終えなければなりません。

sample.js
//ダメなコード
const tag = <img src={logo}>;

//正しいコード
const tag = <img src={logo} />;

空要素とは

JavaScriptの予約語は使えない

JSXはあくまでもJavaScriptの拡張構文なので、JavaScriptの予約語であるclass, forなどの属性は使えない。

JavaScriptを使う場合は{}で埋め込む

JSX内でJavaScriptを使う場合は、{}で埋め込むことができる。

sample.js
const name = 'Tom';

ReactDOM.render(
  <p>Hello {name}.</p>,
docunent.getElementById('root')
);

#=> Hello Tom.
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1