目次
最初に
ちょっと時間に余裕が出てきたのでReactの知識をアップデートするかってことで学び直してます。
以前やった学んだ時はReactを実践投入することはなかったので今回は実践で投入してサービスとして使えるところまで持っていこうと思ってます。
生のReactを知ろう – JSX、Flux、ES6、Webpackを使わず…
極端なところだけど生というか素のReactってのは何なのかを知ろうとしたらこういうアプローチがいいと思う。
React系は細かくモジュールに分割して必要なものを必要な時に必要なだけって感じで考えられていてReactはまぁViewを作るだけになっている。
けどまぁさすがにwebpackでBrowsersyncとES2015での記述をコンパイルだけでもと思って作ってみました。
今までv1で動けばいいかってことでやってきましたが、とうとうNode.jsも最新(v7.9.0)にしてwebpackもv2で動くようにconfigも書きました。
必要なものあるかどうか確認
1 | node -v |
まずはお決まりのNode.js入ってるか確認。
1 | yarn --version |
npmでもいいんですがyarn(Node.jsのパッケージマネージャー)が入ってるか確認。 Yarn
1 | webpack -v |
webpackも入っているか確認。
もし入ってなかったら
1 | npm install -g webpack |
-gオプションはGlobalオプション。
ファイル・フォルダ構成
1 | git clone https://github.com/shigekitakeguchi/yarn-webpack-react-simple.git |
https://github.com/shigekitakeguchi/yarn-webpack-react-simple
GitHubから落として使ってください。
カスタマイズなりなんなりして。
1 | cd npm-webpack-riotjs |
落としたフォルダ内に移動する。
1 | ├── README.md |
ファイル・フォルダ構成はこんな感じ。
README.mdは不要。app.jsに書けばいいだけです。
1 | yarn install |
これで必要なパッケージがインストールされるはず。
package.json
1 | { |
中身はこんな感じ。
パッケージの説明
落としてきたpackage.jsonからインストールすればいいんですがそれぞれのパッケージの説明を。
1 | yarn add --dev babel-core |
https://github.com/babel/babel/tree/master/packages/babel-core
言わずもがな、Babelのコンパイラのコア。
1 | yarn add --dev babel-loader |
https://github.com/babel/babel-loader
webpackでES2015構文で書いたファイルをトランスパイルするのに必要。
1 | yarn add --dev babel-preset-es2015 |
https://github.com/babel/babel/tree/master/packages/babel-preset-es2015
ES2015を扱うためのプラグイン。
1 | yarn add --dev babel-preset-react |
https://github.com/babel/babel/tree/master/packages/babel-preset-react
Reactのためのプラグインですね。
1 | yarn add --dev browser-sync |
https://github.com/browsersync/browser-sync
もう面倒過ぎて手動でブラウザをリロードさせるなんてできないですね。
しかもwebpack-dev-serverも不要になります。
1 | yarn add --dev browser-sync-webpack-plugin |
https://github.com/Va1/browser-sync-webpack-plugin
webpackでBrowserSyncするためのプラグインです。
1 | yarn add --dev webpack |
https://github.com/webpack/webpack
Reactのインストール
1 | yarn add react |
ReactDOMもインストール
1 | yarn add react-dom |
package.jsonの中のscriptsで何をしているか
1 | "scripts": { |
1 | yarn start |
このコマンドでローカルサーバーを立ち上げwebpackでwatchを行いJavaScriptの変更を監視しコンパイルがはじまります。以前よりもシンプルになってます。それだけwebpackへの依存が増えたってことでもありますね。
webpack.config.json
こちらの方はまだES2015へ移行できてないです。
部分的にはv2には対応させましたがとりあえずは動くのでそのまま。
そのうちES2015的な書き方へ移行させたい。
1 | var webpack = require("webpack"); |
webpack(v2)にして書き直したところです。
これはv1でやっていた時の書き方。
1 | module: { |
部分的に書き直すだけで動くようになるみたいですね。
loadersをrulesへ変更しloader: ‘babel’をloader: ‘babel-loader’にしました。
1 | module: { |
サンプルのソースコード
生のReactを知ろう – JSX、Flux、ES6、Webpackを使わず…
こちらで掲載されているコードを参考までに記述しておきます。
/app/index.html
1 |
|
/src/scripts/index.js
1 | import React from 'react'; |
基本的に、ReactはHTMLをJavaScriptでレンダリングするツールです。
これがよくわかるサンプルだと思います。
少しずつReactの学習を進めていけるようなコンテンツをあげていきます。
今回はシンプルにReactの機能とは何かを学べる環境を作りましたがReduxやReact Routerを少しずつでもいいので学んでいける環境をあげていきます。