React.jsでのファイル間のナビゲーション方法


  1. ルーティングを使用する方法: React Routerを使用して、異なるファイル間をナビゲートすることができます。React Routerは、URLパスに基づいて異なるコンポーネントを表示するためのルーティング機能を提供します。

例えば、以下のようなコードを使用してReact Routerをセットアップします:

npm install react-router-dom

次に、ルーティングのためのコンポーネントを作成します:

import { BrowserRouter as Router, Switch, Route, Link } from 'react-router-dom';
import Home from './Home';
import About from './About';
import Contact from './Contact';
function App() {
  return (
    <Router>
      <div>
        <nav>
          <ul>
            <li>
              <Link to="/">Home</Link>
            </li>
            <li>
              <Link to="/about">About</Link>
            </li>
            <li>
              <Link to="/contact">Contact</Link>
            </li>
          </ul>
        </nav>
        <Switch>
          <Route path="/about">
            <About />
          </Route>
          <Route path="/contact">
            <Contact />
          </Route>
          <Route path="/">
            <Home />
          </Route>
        </Switch>
      </div>
    </Router>
  );
}
export default App;

この例では、HomeAboutContactという3つの異なるコンポーネントがあります。それぞれのコンポーネントは、特定のURLパスに基づいて表示されます。

  1. 条件付きレンダリングを使用する方法: 別のファイルにナビゲートするために、状態を使用してコンポーネントの表示を切り替えることもできます。

例えば、以下のようなコードを使用して条件付きレンダリングを実装します:

import React, { useState } from 'react';
import Home from './Home';
import About from './About';
import Contact from './Contact';
function App() {
  const [currentPage, setCurrentPage] = useState('home');
  const renderPage = () => {
    if (currentPage === 'home') {
      return <Home />;
    } else if (currentPage === 'about') {
      return <About />;
    } else if (currentPage === 'contact') {
      return <Contact />;
    }
  };
  return (
    <div>
      <nav>
        <ul>
          <li onClick={() => setCurrentPage('home')}>Home</li>
          <li onClick={() => setCurrentPage('about')}>About</li>
          <li onClick={() => setCurrentPage('contact')}>Contact</li>
        </ul>
      </nav>
      {renderPage()}
    </div>
  );
}
export default App;

この例では、currentPageという状態変数を使用して、現在表示されているページを追跡しています。ナビゲーションのリンクをクリックすると、setCurrentPage関数が呼び出され、表示するページが切り替わります。