React.jsでデフォルトのルートを設定する方法


  1. <Switch>コンポーネントを使用する方法:

    import { Switch, Route, Redirect } from 'react-router-dom';
    const App = () => {
    return (
    <Switch>
      <Route exact path="/" component={Home} />
      <Route path="/about" component={About} />
      {/* どのルートにもマッチしない場合、デフォルトのルートにリダイレクトする */}
      <Redirect to="/" />
    </Switch>
    );
    }

    上記の例では、<Switch>コンポーネント内の最後の<Redirect>要素を使用して、どのルートにもマッチしない場合にデフォルトのルートにリダイレクトします。

  2. react-router-configパッケージを使用する方法:

    import { renderRoutes, matchRoutes } from 'react-router-config';
    const routes = [
    {
    path: '/',
    exact: true,
    component: Home
    },
    {
    path: '/about',
    component: About
    }
    ];
    const App = () => {
    const defaultRoute = matchRoutes(routes, '/');
    
    return (
    <>
      {renderRoutes(routes)}
      {/* どのルートにもマッチしない場合、デフォルトのルートを表示する */}
      {defaultRoute.length === 0 && <Home />}
    </>
    );
    }

    上記の例では、react-router-configパッケージのmatchRoutes関数を使用してマッチするルートを見つけ、デフォルトのルートを表示しています。

  3. withRouter高階コンポーネントを使用する方法:

    import { withRouter, Switch, Route } from 'react-router-dom';
    const App = ({ location }) => {
    return (
    <Switch>
      <Route exact path="/" component={Home} />
      <Route path="/about" component={About} />
      {/* どのルートにもマッチしない場合、デフォルトのルートを表示する */}
      {location.pathname !== '/' && <Route component={DefaultRoute} />}
    </Switch>
    );
    }
    const DefaultRoute = () => {
    return <div>デフォルトのルートです。</div>;
    }
    export default withRouter(App);

    上記の例では、withRouter高階コンポーネントを使用して、現在のルートのパスを取得し、そのパスに基づいてデフォルトのルートを表示しています。

これらの方法を使用することで、React.jsでデフォルトのルートを設定することができます。選択した方法によってコードが異なるため、プロジェクトの要件や個人の好みに応じて最適な方法を選択してください。