Introduction to React.js Part.2
こんにちは、ワタナベ(wtnb_dev)です。
前回の記事の続きです。
Introduction to React.js Part.1
前回は環境構築の一部をやりましたので、今回は実際にReact.jsを使ったコーディングをやっていきます。
初めてのReact.js
まずは定番のHello Worldを、React.jsで実装していきましょう。
Step.1 React.jsのコアパッケージのインストール
最初に、React.jsのコアのパッケージとなる以下の2つをインストールしておきます。
$ yarn add react react-dom
Step.2 index.jsの作成
Hello Worldと出力するReactプログラムを書いていきます。
src/index.js
import React from 'react';
import ReactDOM from 'react-dom';
ReactDOM.render(<h1>Hello World</h1>, document.getElementById('root'));
ReactDOM.renderの第一引数には、画面に出力したいタグを指定します。HTMLのように見えますが、HTMLではありません。
React.jsでは、JSXと呼ばれる構文(HTMLによく似ているもの)を用いて、画面要素を構成していきます。
ReactDOM.renderの第二引数には、JSXの出力先となるHTML上の要素を指定します。
Step.3 index.htmlの作成
次に、実際にブラウザに表示するindex.htmlを作成します。
前回の記事で作成したものに、index.jsを読み込むscriptタグを追加します。
src/index.html
<!DOCTYPE html>
<html lang="ja">
<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>Sample Page</title>
</head>
<body>
<div id="root"></div>
<script src="index.js"></script>
</body>
</html>
bodyタグ内には、idが"root"のdivタグを記載しています。
これが、ReactDOM.renderの第二引数で指定したタグ要素となり、このdivタグ内に、ReactDOM.renderの第一引数に指定したJSXが出力されます。
これで、React.jsで作成されたJavaScriptファイルと、実際にブラウザに表示するHTMLファイルとの関連付けができました。
Step.4 動作確認
それでは、HTMLファイルとJavaScriptファイルができましたので、index.htmlを実際にブラウザで開いて確認してみましょう。
index.htmlをWebブラウザにドラッグ&ドロップして開いてみます。
何も出力されないかと思います。
ブラウザの開発者ツールを開いてみましょう。コンソールタブに以下のようなメッセージが出力されています。(Chromeの場合)
Uncaught SyntaxError: Unexpected identifier index.js:1
index.jsでシンタックスエラー(構文解析エラー)が発生しています。
これは、React.jsで記載されたJavaScriptファイルが、そのままではブラウザで表示できないことを意味しています。
これを解消するためには、トランスパイラと呼ばれる技術を用います。
トランスパイラは、ある言語を別の言語に変換する機能を持ちます。
これは、例えば最新仕様のECMAScriptで記載されたJavaScriptファイルを、最新仕様に対応していないWebブラウザで動かしたい場合に、「最新仕様のECMAScript」→「ブラウザが対応している仕様のECMAScript」に変換するような用途に使われます。
React.jsの場合も同様に、React.jsで記載されたJavaScriptを、Webブラウザで動かせるJavaScriptに変換することで、シンタックスエラーを解消することができます。
次回はトランスパイラを導入し、ブラウザ上でHello Worldが出力されるようにしてみます。
まとめ
・React.jsを使うには、コアのパッケージとなる「react」「react-dom」をインストールする
・React.jsでは、JSXと呼ばれる、HTMLによく似た構文で画面要素を作成する
・JSXで記載された要素をブラウザに出力するには、ReactDOM.renderを用いて、JSXと出力先のHTML要素を関連付ける
・React.jsで記載されたプログラムはそのままではブラウザ上で動かず、トランスパイラを用いる必要がある
この記事が気に入ったらサポートをしてみませんか?