はじめに
swim-loverです。 初心者向けのWebアプリ開発記事です。フロントエンド環境にReact.jsを使用しています。Webアプリ開発記事と述べていますが、未だに、公式ページをお手本にしているだけで、まだまだ道半ばです。
第15回では、公式サイトに従い、テスト用ドメインで、map関数の基本的な確認と公式サイトに従い、箇条書きリストを作成しました。
引き続き、Reactの勉強を進めていきたいと思います。
Node.js とcreate-reat-appを使う
これまで、作成したコードは、テスト用ドメインにコードを移動して、動作確認していました。
今回より、効率性の観点から、以下のように学び方を変更することにしました。
- Node.js インストール Local環境でReactを開発するために、Node.jsをインストールしました。 https://nodejs.org/ja/ より、LTS版を選択してインストールします。
- VS code インストール エディタ環境はVisual Studio Codeをインストールしました。https://code.visualstudio.com/download
vs codeのTerminal windowからnodeのコマンドが実行できるのでWindwow切り替えの手間は省けます。
ここではwork_js というフォルダを作成しました。
node.js Versionを確認します。
node -v
“npm init”コマンドを実行します。これにより、package.jsonファイルが作成されます。package.jsonは、パッケージに関する設定情報が記述されたファイルです。npm installコマンドを実行すると、package.jsonの記載内容に従って、パッケージのインストールが実行されます。
- create-react-app インストール
Create-React-appはReact開発環境の雛形だそうです。これを活用してシングルページアプリケーションを作って行きたいと思います。
https://ja.reactjs.org/docs/create-a-new-react-app.html
npx コマンドにより、create-reat-app パッケージを取得します。
npm startコマンドでsampleが起動しました。
npx create-react-app react-sample-app
cd react-sample-app
npm start
サンプルプログラムの改造
サンプルプログラムの改造を行います。今回、水泳トレーニングのメニュー作成を行ってみることにしました。
MenuItemコンポーネント作成
以下のようなMenuItemコンポーネントを作成しました。
MenuItemコンポーネントは、titleとdescriptionを親コンポーネントから受け取って、表示します。
MenuItem.js
import React, { Component } from 'react';
import './MenuItem.css';
class MenuItem extends Component {
render() {
const { title, description } = this.props;
return (
<div className="MenuItem">
<div className="MenuItem-title">{title}</div>
<div className="MenuItem-description">{description}</div>
</div>
);
}
}
export default MenuItem;
MenuItem.css
.MenuItem {
border: 3x solid orange;
margin: 12px;
border-radius: 4px;
width: 500px;
background-color: whitesmoke;
box-shadow: 1px 2px 5px 3px goldenrod;
padding: 4px 2px;
}
.MenuItem-title {
font-size: 18px;
margin: 4px 4px 4px;
border-bottom: 2px solid skyblue;
text-align: left;
padding: 4px 8px;
}
.MenuItem-description {
word-wrap: break-word;
text-align: left;
padding: 8px;
}
MenuItemコンポーネント呼び出し
App.jsを編集して、以下の様に書き換えます。10行目でMenuItemコンポーネントを呼び出しています。
import React, { Component } from 'react';
import './App.css';
import MenuItem from './MenuItem.js';
class App extends Component {
render() {
return (
<div className="App">
<div align="center">
<MenuItem
title="Swim menu 2023/1/29"
description="持久力トレーニング"
/>
</div>
</div>
);
}
}
export default App;
ReactAppアプリが以下のように更新されました。
まとめ
今回、React開発環境として、node.jsの導入、シングルページアプリケーションの雛形として、create-react-appの導入、サンプルプログラムの改造を行ってみました。
引き続き、サンプルプログラムの改造を進めていきたいとおもいます。
組み込み系ソフトエンジニアをしています。これまでフロントエンド技術は避けてきましたが、食わず嫌いをやめて、勉強を始めました。
趣味は、水泳、ロードバイク、ランニング、登山です。
組み込み系技術ネタ、勉強したフロントエンド技術、たまに趣味の運動について発信していきます。
どうぞよろしくお願いします。
コメント