ReactのJSXとは

ReactのJSXとは

JSXというのはJavaScriptの拡張言語のことで、このJSXでは、JS内にhtmlを記述することができます。

以下、例です。

<script type="text/babel">
  const a = <h1>hello world</h1>
</script>

aという変数にhtmlタグを格納することができます。

ちなみに、”text/babel”とすることによってconstなどを使うこともできます。

以前は、<script type=”text/jsx”>と書いていたようですが、現在は、<script type=”text/babel”>と記述します。

JSX文法ではhtmlタグ内に置換変数を指定できる

置換変数は、{と}で囲みます。例えば、以下のように記述します。

const msg = "bbb";
const a = <h1>aaa{msg}ccc</h1>;

以下、コーディング例です。

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8" />
<title>Reactサンプル</title>
<script src="https://unpkg.com/react@15/dist/react.min.js"></script>
<script src="https://unpkg.com/react-dom@15/dist/react-dom.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.38/browser.min.js"></script>
</head>

<body>
  <!-- コーディング部分 -->
  <div id="koko"></div>
  <script type="text/babel">
    const msg = "bbb";
    const a = <h1>aaa{msg}ccc</h1>;
    ReactDOM.render(
      a,
      document.getElementById("koko")
    )
  </script>
</body>
</html>

サンプル

Babelでトランスパイルしてみる

以下のソースをトランスパイルしてみます。

ReactDOM.render(
  <h1>Hello, world!</h1>,
  document.getElementById('root')
);

トランスパイルすると以下のように、React.createElementメソッドが登場してきます。

'use strict';

ReactDOM.render(React.createElement(
  'h1',
  null,
  'Hello, world!'
), document.getElementById('root'));

React.createElementメソッドとは

React.createElementメソッドは、仮想DOMを作成するメソッドです。

メソッドの引数は以下のとおりです。

引数 内容
第一引数 タグ名
第二引数 属性(なければnull)
第三引数 インライン要素

 

ReactのJSXとは

コメント

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