第02節、初識JSX文法


JSXは、XMLタグを使用して仮想DOMを作成し、宣言コンポーネントを作成するJavaScript XMLです.
JSX構文サポートへの参加
JSX構文サポートを使用する場合は、Babelを使用して変換できます.ここではBabelのコアファイルbrowser.jsを使用します.ネット上で提供されている静的リポジトリへの参照(http://www.bootcdn.cn/)、自分でダウンロードすることもできます.しかし、実際のプロジェクト開発では、コードにjsファイルを直接導入するのではなく、コードを静的ファイルに変換してサーバに配備します.
ハローワールドを書き直す
/span>html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>  Reacttitle>

head>
<body>
    <div id="reactContainer">div>

    <script src="react.js">script>
    <script src="react-dom.js">script>
    <script src="http://cdn.bootcss.com/babel-core/5.8.38/browser.min.js">script>
    <script type="text/babel">
        var HeComponent =React.createClass({
            render:function () {
                return <h1>Hello Worldh1>;
            }
        });

        ReactDOM.render(
            <HeComponent/>,
            document.getElementById('reactContainer')
        )
    script>
body>
html>

上のコードでJSXのメリットを見つけることができます.
  • は、よく知られている構文模倣HTMLを使用して仮想DOMを定義することができる.
  • プログラムコードはより直感的です.
  • JavaScript間で等価に変換され、コードがより直感的になります.

  • 注意:
  • reactコンポーネントを宣言する場合は、頭文字を大文字にする必要があります.
  • createClassで作成されたコンポーネントにはルートノードが1つしかありません.このルートノードには、任意のレイヤのサブノードがあります.つまり、返されるコードの最外層には1つのラベルしかありません.このラベルには多くのラベル(ノード)が含まれていますが、returnの後ろには複数の兄弟ノードが存在しません.
  • JSX構文を使用すると、scritpのtype=「text/babel」になります.そうしないと、コードは解析できません.

  • JSXでの式
    JSXは式をサポートしています.カッコを使うだけで式を使うことができます.HelloWorldプログラムを使用式に書き換えました.
    上のコードを
    var Ij =React.createClass({
        render:function () {
            return <h1>Hello {this.props.name?this.props.name:'world'}h1>;
        }
    });
    
    ReactDOM.render(
        <Ij name="js"/>,
        document.getElementById('reactContainer')
    )

    式はif...elseのような文をサポートしませんが、三元演算子と二元演算子をサポートします.