ReactでHello Worldしてみよう
概要
本記事では、初めてReactに触れる方向けに、Reactってこんな風なJSライブラリだよ〜という紹介です!
ハンズオン形式で実際にHello Worldをするところまでできたら良いな+αでReactらしいcssの適用を紹介します〜
対象読者
- プログラミング経験はあるが、Reactに全く触れたことのない人
前提として
- nodeとnpmをマシンにインストールしていること
Reactのアプリを作る
appを作る
早速作っていきましょう〜
$ npx create-react-app first-react-app
Need to install the following packages:
create-react-app@5.0.1
Ok to proceed? (y) y
npm WARN deprecated tar@2.2.2: This version of tar is no longer supported, and will not receive security updates. Please upgrade asap.
Creating a new React app in /Users/***/first-react-app.
Installing packages. This might take a couple of minutes.
Installing react, react-dom, and react-scripts with cra-template...
added 1461 packages in 1m
242 packages are looking for funding
run `npm fund` for details
Initialized a git repository.
Installing template dependencies using npm...
added 69 packages, and changed 1 package in 9s
246 packages are looking for funding
run `npm fund` for details
Removing template package using npm...
removed 1 package, and audited 1530 packages in 1s
246 packages are looking for funding
run `npm fund` for details
8 vulnerabilities (2 moderate, 6 high)
To address all issues (including breaking changes), run:
npm audit fix --force
Run `npm audit` for details.
Created git commit.
Success! Created first-react-app at /Users/***/first-react-app
Inside that directory, you can run several commands:
npm start
Starts the development server.
npm run build
Bundles the app into static files for production.
npm test
Starts the test runner.
npm run eject
Removes this tool and copies build dependencies, configuration files
and scripts into the app directory. If you do this, you can’t go back!
We suggest that you begin by typing:
cd first-react-app
npm start
Happy hacking!
すでにinstallされているパッケージ等によってちょっと違うかもしれませんが、Happy hacking!
と表示されたらOKです!
appを起動する
作ったappを起動していきます!
$ cd first-react-app
$ npm start
Compiled successfully!
You can now view first-react-app in the browser.
Local: http://localhost:3000
On Your Network: http://192.168.1.34:3000
Note that the development build is not optimized.
To create a production build, use npm run build.
webpack compiled successfully
ターミナル上で上記の表示が出れば正常に起動できています。
実際に画面を見にいきましょう。
下記のような画面が表示されているはずです
Hello Worldを表示する
プログラミングの慣習にならって、Hello World
を表示しましょう。
お好きなエディターでfirst-react-app
を開いて下さい。
VSCodeだとこんな感じ
では、src
配下にcomponents
ディレクトリを作り、
components
配下にHelloWorld.jsx
を作って下さい。
そして、HelloWorld.jsx
に以下のようにコードを書きます
export const HelloWorld = () => {
return (
<H1>Hello World!!</H1>
);
};
この段階では、まだ画面には反映されていません。
というわけで、画面に反映させていくぞ〜!
App.jsを開いて、下記のように変更します。
import logo from './logo.svg';
import './App.css';
+ import { HelloWorld } from './components/HelloWorld';
function App() {
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<p>
Edit <code>src/App.js</code> and save to reload.
</p>
<a
className="App-link"
href="https://reactjs.org"
target="_blank"
rel="noopener noreferrer"
>
Learn React
</a>
</header>
+ <body>
+ <HelloWorld />
+ </body>
</div>
);
}
export default App;
ついでに邪魔なCSSを消します
.App-header {
background-color: #282c34;
- min-height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
font-size: calc(10px + 2vmin);
color: white;
}
これでlocalhostを見ましょう
せっかくだし、styleを適用しましょう〜
このままだと味気ないので、CSSを適用していきましょう。
せっかくだし、Reactらしい適用方法を紹介します!
styled-componentsの導入
今回はstyled-components
を使ってみます。
$ npm install styled-components
added 10 packages, and audited 1540 packages in 6s
248 packages are looking for funding
run `npm fund` for details
8 vulnerabilities (2 moderate, 6 high)
To address all issues (including breaking changes), run:
npm audit fix --force
Run `npm audit` for details.
はい、導入完了
styleを適用する
HelloWorld.jsx
を開いて下さい
+ import styled from 'styled-components';
export const HelloWorld = () => {
return (
+ <SContainer>
- <h1>Hello World!!</h1>
+ <SH1>Hello World!!</SH1>
+ </SContainer>
);
};
+ const SContainer = styled.div`
+ background-color: #cd1c1c;
+ &:hover {
+ background-color: #111;
+ }
+ `;
+ const SH1 = styled.h1`
+ color: #fff;
+ text-align: center;
+ `;
今回はstyled
という名前にしましたが、お好きな名前でどうぞ〜
以下のようにスタイルが適用されたらOKです
jsx
ファイル内でsass
が使えるので結構便利です!
Hello Worldを増殖させる。
下記のようにコードを追加すると、Hello Worldが増殖します〜w
import logo from './logo.svg';
import './App.css';
import { HelloWorld } from './components/HelloWorld';
function App() {
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<p>
Edit <code>src/App.js</code> and save to reload.
</p>
<a
className="App-link"
href="https://reactjs.org"
target="_blank"
rel="noopener noreferrer"
>
Learn React
</a>
</header>
<body>
<HelloWorld />
+ <HelloWorld />
+ <HelloWorld />
+ <HelloWorld />
</body>
</div>
);
}
export default App;
Reactは楽しいぞ
モダンなWebフロントエンドを勉強しようとしたとき、選択肢としてはReactかVueが有力かと思いますが、2023年10月現在ですと、React優勢です。(Googleトレンドとか見てくれ〜)
なので、今からモダンなWebフロントエンドを勉強するならReactをお勧めします〜
Discussion