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の大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント