-
Notifications
You must be signed in to change notification settings - Fork 0
DNET_ReactFirstStep
- 戻る(React -> Redux)
- Reactのファースト・ステップ
- Reactのセカンド・ステップ
- Reactのサード・ステップ
- Reactの4thステップ
- Reactの5thステップ
- ...Reactのファースト・ステップ2
create-react-appを使用した、React の step by step。
このあたりを確認しつつ、下記ステップを進める。
-
npm(Node.js(JavaScriptの該当節を参照))をインストールしておく。
-
create-react-app(npm ,etc.のNode.js系のツール)のインストール
npm install -g create-react-app -
以下は、既定の構成
| # | カテゴリ | ツール/言語 | 備考 |
|---|---|---|---|
| 1 | 開発言語 | EcmaScript6 | - |
| 2 | トランスパイラ | Babel | - |
| 3 | パッケージング | Webpack | ・webpack-dev-server ・html-webpack-plugin ・style-loader |
| 4 | コード解析 | ESLint | - |
| 5 | テストツール | Jest | - |
react-appと言う名称でサンプルを生成する。
create-react-app react-app
create-react-appを使用した場合、configは隠蔽されているので、
カスタマイズする必要がある場合、npm run ejectでエクスポートできる。
react_app
├ public
| ├ favicon.ico
| ├ index.html
| └ manifest.json
├ src
| ├ App.css
| ├ App.js
| ├ App.test.js
| ├ index.css
| ├ index.js
| ├ logo.svg
| ├ Menu.js
| └ registerServiceWorker.js
├ .gitignore
├ package.json
├ package-lock.json
└ README.md
-
Gitなどから復元した場合は、事前に、
npmのインストール・コマンド(npmのコマンドの該当節を参照)で
node_modulesを復元する必要がある。npm i -
サンプルを実行する
(サンプルのルート・ディレクトリで以下コマンドを実行)。npm start※ npm start( ≒ npm run-script start)で、package.jsonの
"start": "react-scripts start"が実行され、webpack開発サーバが起動する。
- 「基本的な事項」
- 「データおよびイベント連携」
を考慮し、以下のように実装する(いずれも React の該当節を参照)。
手順1で生成したサンプルに追加実装を行う。
- https://github.com/OpenTouryoProject/SampleProgram/blob/master/Template/SPATemplate/react_app/src/Menu1.js
- https://github.com/OpenTouryoProject/SampleProgram/blob/master/Template/SPATemplate/react_app/src/Menu2.js
- ASP.NET Core SPAテンプレートの該当節に書いた、移行を実施する。
- ASP.NET Core React.jsテンプレート -> create-react-appで生成した土台に移行
- 様々なエッセンスが移行される。
Expressで実装する場合、他のSPAアプリケーションからも利用するので、別フォルダに準備すると良い。
ASP.NET Coreで実装する場合、以下を流用するなどする。
https://github.com/OpenTouryoProject/OpenTouryoTemplates/tree/master/root_VS2017/programs/CS/Samples/WS_sample/ASPNETWebServicehttps://github.com/OpenTouryoProject/OpenTouryoTemplates/tree/master/root_VS2017/programs/CS/Samples4NetCore/Backend/ASPNETWebService- https://github.com/OpenTouryoProject/OpenTouryoTemplates/tree/master/root_VS2019/programs/CS/Samples4NetCore/Backend/ASPNETWebService
create-react-appなので大文字はNG
create-react-app react-template
-
ASP.NET Core React.jsテンプレートの該当節
componentsフォルダに格納 -
create-react-app
srcフォルダに格納
-
ASP.NET Core React.jsテンプレートの該当節
cssフォルダに格納 -
create-react-app
srcフォルダに(componentsと同じフォルダに同じ名称で)格納
componentsフォルダに格納
- 共通のCSSはcssフォルダに格納
- 個別のCSSはcomponentsと同じフォルダに同じ名称で格納
- ReactTemplate(ASP.NET Core React.jsテンプレート) ---> react_template
- ルートから徐々に移行をしていく。
必要そうなモジュールをインストールするように設定。
- バージョン番号なども関係するので一筋縄ではいかない。
- 結局、ReactTemplate(ASP.NET Core React.jsテンプレート)を主にして置き換えた。
土台となる *.html ファイル
- \Views\Home\Index.cshtml
- \Views\Shared_Layout.cshtml
- --- > \public\index.html
土台から呼び出される *.js ファイル
-
\ClientApp\boot.js --- > \src\index.js
-
依存関係のコピー
- \ClientApp\css\site.css ---> \src\css\site.css
- \ClientApp\css\routes.js ---> \src[routes.js](#routesjs)
ルーティングを行う *.js ファイル
- 依存関係のコピー
\src\components
レイアウト部分を移植
-
\src\App.js --- > \src\components\Layout.js
-
依存関係のコピー
- \src\App.css --- > \src\components\Layout.css
- \src\logo.svg --- > \src\components\logo.svg
冗長なコードを削除。
冗長なコードを削除。
変更不要。
変更不要。
-
Expressサーバを起動
>node server/server.js -
若しくは、ASP.NET Coreを起動
SPAアプリケーションの起動
>npm start
- https://github.com/OpenTouryoProject/FrontendTemplates/tree/develop/SPA/React/react_template
- 上記サンプルは、サーバー・サイドにASP.NET Coreを利用している。
ここでは、以降、難易度が上がるので、Visual Studio Codeでのデバッグ設定を行う。
Debugger for Chrome extensionをインストールする。
Debug viewを表示。
- 「Ctrl+Shift+D」押下
- 若しくは左のデバッグ・マークを押下
Debug viewの歯車マークを押下してlaunch.jsonを新規作成する。
launch.jsonのconfigurationsセクションに以下の要素を追加する。
{
"type": "chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
"url": "http://localhost:3000",
"webRoot": "${workspaceFolder}"
}-
Visual Studio的操作性で、
ソース・コードにブレーク・ポイントを設定できる。 -
console.logでデバッグ情報を出力できる。
console.log("XXX: " + JSON.stringify(state));
-
デバッグ実行の開始前に、npm startを実行しておく。
-
次いで、Debug viewで、[▶](デバッグの開始)ボタンを
DDLから「Launch Chrome against localhost」を
選択した状態で押下してデバッグ実行を開始する。
- ブレーク・ポイントでブレークする。
- デバッグ・コンソールにデバッグ情報が出力される。

- React JavaScript Tutorial in VS Code
https://code.visualstudio.com/docs/nodejs/reactjs-tutorial - [react:day1] Reactをはじめます&デバッグ環境も
https://qiita.com/ozepon/items/d5659f068ed1408f3c17
- 基本編:1/3
https://qiita.com/tomi_shinwatec/items/6563eacd88e63bda5de3 - 基本編:2/3
https://qiita.com/tomi_shinwatec/items/cdd319d8fce8bdb829d0 - 基本編:3/3
https://qiita.com/tomi_shinwatec/items/975eceda3d07b152547c
- 〜準備〜
https://qiita.com/kuniken/items/19fccc27b8bfa8068d22 - 〜初めてのコンポーネント〜
https://qiita.com/kuniken/items/963cb977dffd3e662e40 - 〜コンポーネントをまとめる〜
https://qiita.com/kuniken/items/c0f5ed06695ce52d4854 - 〜スタイルの適用〜
https://qiita.com/kuniken/items/b06de893c22f33499a22 - 〜React ver0.14〜
https://qiita.com/kuniken/items/2fc5b782da5d302247ab - 〜propsとstate、それからrefs〜
https://qiita.com/kuniken/items/a22adda392ccc30011b1 - 〜・・・〜
https://qiita.com/kuniken/items/・・・ - 〜画面遷移〜
https://qiita.com/kuniken/items/89c8bbef3b71d2af662d - 〜Flux〜
https://qiita.com/kuniken/items/b532d4fa980b53fd6bd5
https://qiita.com/ryo_t/items/67e319f8cc41c2d96eb9
- [DAY 01] ReactでHelloWorldとカードアプリ作成
- [DAY 02] 手軽にes2015を実行する為にreplツールを調査しました
- [DAY 03] styled-componentsを使用してスタイリングを行う
- [DAY 04] ES2015を覚えるならコレ!ES2015のおすすめ学習リソース一覧
- [DAY 05] JavaScriptの関数を簡単にまとめる
- [DAY 06] JavaScriptの高階関数って何ですか?
- [DAY 07] Reactでカウンターアプリを作る!
- [DAY 08] ReactのStateとPropsの違いについて
- [DAY 09] Reactのコンポーネントをステートレスに!!!recomposeとは?
- [DAY 10] recomposeを使って電卓アプリを作る!
- [DAY 11] React Storybookを使って開発効率を爆速に!!
- [DAY 12] 結局どれを使うのがいいの?Reactスターターキット比較
- [DAY 13] Prettierで書いたコードを見やすく綺麗に!
- [DAY 14] ダミーデータを簡単に生成するライブラリ、faker.jsを使ってみる
- [DAY 15] Next.jsを使ってみる
-
React初心者が環境構築でつまづかないためのCreate React Appの始め方 - WPJ
https://www.webprofessional.jp/create-react-app/ -
Create React AppでReactアプリを開発する : エキサイト公式 エンジニアブログ
https://blog.excite.co.jp/exdev/25487209/ -
npm run eject で create-react-app はアプリケーションの長寿を保証する - valid,invalid
http://ohbarye.hatenablog.jp/entry/2016/11/20/141135
-
Facebook公式のcreate-react-appコマンドを使ってReact.jsアプリを爆速で作成する
https://qiita.com/chibicode/items/8533dd72f1ebaeb4b614 -
Facebook 公式ツール Create React App を使って React 開発の初歩を学ぶチュートリアル
https://qiita.com/kent_ocean/items/d429804b5ad0d7570ece -
create-react-app が裏で何をやっているか理解する
https://qiita.com/naohikowatanabe/items/71a8bf477216ef56a5b7
移行メモ
- 「デバッグ実行の開始の開始前に、npm startを実行しておく。」は 「開始」が重複していたため「デバッグ実行の開始前に、」とした。
- 「0からreact習得記 まとめ」「React初心者のまとめ」「今からはじめるReact.js」は、 見出しと本文が 1 行ずつ交互に並ぶ構成だったため箇条書きにまとめた。
- 同名の見出し(「インストール」「実行」「概要」「参考」「Component」「CSS」「サンプル」)が 複数あり GitHub Wiki でアンカが衝突するため、括弧で文脈を補って一意にした。
- マイクロソフト系技術情報 Wiki(techinfoofmicrosofttech.osscons.jp)への URL リンクは、移行済みの ASP.NET Core SPAテンプレート / ASP.NET Core React.jsテンプレート / ASP.NET Core に張り替えた。
- PukiWiki のページ内アンカ(
#xxxxxxxx)は GitHub Wiki では再現できないため、 同一ページ内のアンカは見出しから生成されるアンカに張り替え、 他ページのアンカを指すリンクは「〜(ページ名の該当節を参照)」の形に置き換えた。- 添付は 1 点で、
DNET_ReactFirstStep_1.pngとして取得した。
Tags: 移行, React, create-react-app, npm, SPA, Visual Studio Code, デバッグ, ASP.NET Core
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。