【React】Reactで画面遷移させる方法

Reactで画面遷移を実装していきます。

Reactとは、Facebookが開発したオープンソースのJavaScriptライブラリです。SPA(シングルページアプリケーション)を作成する時に使用されます。

Reactプロジェクトの作成

Node.jsがインストールされているかを確認


node -v
npm -v


Reactプロジェクトを作成するコマンドを実行


npx create-react-app my-app


プロジェクトディレクトリに移動


cd my-app


プロジェクトを起動


npm start


ブラウザでhttp://localhost:3000にアクセスすると、Reactアプリが表示される

初期のディレクトリ構造

「npx create-react-app my-app」コマンドで作成した場合、このようなディレクトリ構造になっているかと思います。


my-app/
├── node_modules/        # インストールされたパッケージ
├── public/              # 公開用の静的ファイル
│   ├── favicon.ico      # ファビコン
│   ├── index.html       # アプリのエントリーポイント
│   ├── logo192.png      # ロゴ画像(192x192)
│   ├── logo512.png      # ロゴ画像(512x512)
│   ├── manifest.json     # ウェブアプリの設定
│   └── robots.txt       # 検索エンジン向けの設定
├── src/                 # アプリのソースコード
│   ├── App.css          # Appコンポーネント用のCSS
│   ├── App.js           # メインのアプリコンポーネント
│   ├── App.test.js      # Appコンポーネントのテスト
│   ├── index.css        # 全体のスタイル
│   ├── index.js         # アプリのエントリーポイント
│   └── reportWebVitals.js # パフォーマンス測定用のファイル
├── .gitignore           # Gitに含めないファイルの設定
├── package.json         # プロジェクトのメタデータと依存関係
├── README.md            # プロジェクトの説明
└── yarn.lock / package-lock.json  # 依存関係のロックファイル

react-router-domのインストール

Reactで画面遷移させるには、react-router-domが必要になるのでインストール


npm install react-router-dom

ページを作成する

srcディレクトリの中にpagesディレクトリを作成し、その中にページのファイルを作成していきます。



├── src/                 # アプリのソースコード
│   ├── pages
          ├── ここにページのファイルを作成していく


ページのファイルの中身

今回はpage1.js、page2.js、page3.jsの3つのファイルを作成します。

画面遷移したことがわかりやすいように、それぞれ数字を変更して保存してください。




const Page1 = () => {
    return (
        <>
            <h1>page1</h1>
        </>
    )
}

export default Page1

作成した後は、こういうディレクトリ構造になっています。



├── src/                 # アプリのソースコード
│   ├── pages
          ├── page1.js
          ├── page2.js
          ├── page3.js

App.jsの中身を変更

App.jsファイルの中身のdivタグの中身とcssの記述を削除します。




function App() {
  return (
    <div>

    </div>
  );
}

export default App;


画面遷移させるために先ほどインストールしたreact-router-domの中のRouter, Routes, Route, Linkが必要なのでimportする。



import { BrowserRouter as Router, Routes, Route, Link } from 'react-router-dom';


function App() {
  return (
    <div>

    </div>
  );
}

export default App;


さらにルーティンを設定します。

先ほど作成したpage1.js、page2.js、page3.jsをimportし、このように記述します。



import { BrowserRouter as Router, Routes, Route, Link } from 'react-router-dom';

import Page1 from './pages/page1'
import Page2 from './pages/page2'
import Page3 from './pages/page3'


function App() {
  return (
    <div>
   <Router>
         {/* ルーティングの設定 */}
         <Routes>
           <Route path="/page1" element={<Page1 />} />
           <Route path="/page2" element={<Page2 />} />
           <Route path="/page3" element={<Page3 />} />
         </Routes>
     </Router>
    </div>
  );
}

export default App;


画面遷移がしやすいようにナビゲーションメニューを追加する。



import { BrowserRouter as Router, Routes, Route, Link } from 'react-router-dom';

import Page1 from './pages/page1'
import Page2 from './pages/page2'
import Page3 from './pages/page3'


function App() {
  return (
      <div>
        <Router>
        
          {/* ナビゲーションメニュー */}
          <nav>
            <ul>
              <li>
                <Link to="/page1">Page1</Link>
              </li>
              <li>
                <Link to="/page2">Page2</Link>
              </li>
              <li>
                <Link to="/page3">Page3</Link>
              </li>
            </ul>
          </nav>

          {/* ルーティングの設定 */}
          <Routes>
            <Route path="/page1" element={<Page1 />} />
            <Route path="/page2" element={<Page2 />} />
            <Route path="/page3" element={<Page3 />} />
          </Routes>
        
        </Router>
      </div>
  );
}

export default App;

ブラウザで動作確認

ブラウザで開くと、クリックで画面遷移できていることを確認できます。

コメント

タイトルとURLをコピーしました