【React入門】 1 最小構成

この記事では以下の画面を作成する。

f:id:kosumoro:20160803232939j:plain

https://cosmology233.github.io/sandbox/hatena/2016/08/03/

index.html

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width,initial-scale=1">
  <title>Practice React</title>
</head>
<body>
  
  <div id="app"></div>

  <script src="//cdnjs.cloudflare.com/ajax/libs/react/15.2.1/react.min.js"></script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/react/15.2.1/react-dom.min.js"></script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.23/browser.min.js"></script>
  <script src="./scripts/script.js" type="text/babel"></script>
</body>
</html>

まずターゲットとなる親要素を置く。Reactが作成するDOMはターゲット要素の子要素として描画される。つまり、描画後のDOMは以下のような形になる。

<div id="app">
  <h1 data-reactroot="">Hello world!</h1>
</div>

また、Reactの必須ライブラリ react.min.jsreact-dom.min.js も読み込む。

jsx記法とES2015の記法も使用するので、 browser.min.js も読み込む。

描画用のスクリプトscript.js 内に記述する。

scripts/script.js

class MyApp extends React.Component {
  render() {
    return (
      <h1>Hello world!</h1>
    );
  }
};

ReactDOM.render(
  <MyApp />,
  document.getElementById("app")
);

React.Component を継承したクラスが画面上に描画される要素(コンポーネント)となる。

コンポーネント内のDOM構造の定義は render メソッド内で行う。

ReactDOM.render は作成したコンポーネントを実際に描画する。第一引数にルートとなるコンポーネント、第二引数にターゲット要素を指定する。

まとめ

最小構成を意識してReactを組んでみた。 まだ学び始めたばかりなので仕様や使い方を誤解している部分もあるかもしれない。