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) |
| 第三引数 | インライン要素 |

KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^


コメント