今更感もありますが、最近仕事でフロントエンド周りをやっていた為、
色々勉強していこうと今回はReactに手を出してみます。
色々勉強していこうと今回はReactに手を出してみます。
Reactとは?
Facebookが開発しているJavascriptのライブラリで
UIをコンポーネントベースで構築していきます。
UIをコンポーネントベースで構築していきます。
開発環境構築
Reactが登場して、いろいろ周りの環境などが落ち着いて来たので
以下の組み合わせで進めて行こうかと思います。
以下の組み合わせで進めて行こうかと思います。
- Babel
- webpack
- ESLint
- Mocha
それぞれどんなものかというと・・・
Babel
2015年に
Javascriptの標準化されたものが
の元で標準化が行われています。
ECMAScript(ES6)が登場しました、何かというと・・・Javascriptの標準化されたものが
ECMAScriptでEcmaインターナショナルの元で標準化が行われています。
そして、2009年に発表されたものが
ほとんど実装されています。ただ
そこでBabelを使うと
旧バージョンの
ES5で、現在のモダンなブラウザはほとんど実装されています。ただ
ES6はまだ対応中です。。そこでBabelを使うと
ES6や次期のバージョンのソースコードから旧バージョンの
ES5などに変換します。webpack
Webアプリケーションに必要なリソースや依存関係などを解決する
ビルドツールです。
ビルドツールです。
今回はwebpackでbabelなどの必要なものを取り入れてビルドします。
ESLint
Javascriptの静的検証ツールです。
検証ルールを設定できES6の構文やjsxもチェックできます。
検証ルールを設定できES6の構文やjsxもチェックできます。
Mocha
Unitテスト用フレームワークです。
簡単なサンプル作成
今回はただHelloと表示させるだけの簡単なサンプルを作成するので
MochaとESLintは使いませんが、とりあえずインストールだけしています。
早速もろもろインストールします。
$ npm init
$ npm install -g webpack
$ npm install -g webpack-dev-server
$ npm install -g mocha
$ npm install --save react
$ npm install --save react-dom
$ npm install --save-dev babel-core
$ npm install --save-dev babel-loader
$ npm install --save-dev babel-preset-es2015
$ npm install --save-dev babel-preset-react
$ npm install --save-dev eslint
package.jsonに関しては今回はこんな感じで作成しました。{
"name": "Sample",
"version": "1.0.0",
"description": "React sample.",
"main": "container.js",
"scripts": {
"lint": "aslant src --ext .js --ext .jsx"
},
"author": "XXXXXXXX",
"license": "MIT"
}
scriptsにてeslintを起動できるようにしています。src配下のjs, jsx拡張子のファイルが対象です。実際に動作させる場合は
$ npm run lint
で実行できますが、今回は使いません。
次に以下構成でファイルを作成していきます。
.
├── README.md
├── index.html
├── package.json
├── src
│ ├── container.js
│ └── hello.jsx
└── webpack.config.js
- webpack.config.js
var path = require('path');
module.exports = {
entry: './src/container.js',
output: {
path: __dirname,
filename: 'bundle.js'
},
module: {
loaders: [
{
test: /.jsx?$/,
loader: 'babel-loader',
exclude: /(node_modules|bower_components)/,
query: {
presets: ['es2015', 'react']
}
}
]
},
};
上記設定では
最終的に
babelを使用して、container.jsとhello.jsxからbundle.jsを作成しています。最終的に
index.htmlはbundle.jsを読み込むようにしています。- container.js
import './hello.jsx';
- hello.jsx
import React from 'react';
import ReactDOM from 'react-dom'
class Hello extends React.Component {
render() {
return <h1>Hello</h1>
}
}
ReactDOM.render(<Hello/>, document.getElementById('container'));
- index.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>React Sample</title>
</head>
<body>
<div id="container"></div>
</body>
<script type="text/javascript" src="bundle.js"></script>
</html>
それでは早速実行して確認してみたいと思います。
↓の
↓の
webpack-dev-serverコマンドで色々よろしくやってくれます。$ webpack-dev-server --progress --colors
起動後、
http://localhost:8080/webpack-dev-server/index.html
を確認して↓このようにHelloと表示されとけば成功です。

Nice post ! Thanks for sharing valuable information with us. Keep sharing.. AngularJS Online Course Bangalore
返信削除