React Router Advanced 是 React 中用于管理复杂路由的高级功能集合。它提供了诸如嵌套路由、动态路由匹配、路由守卫等功能,使得构建大型单页应用变得更加容易。

嵌套路由 (Nested Routes)

嵌套路由允许你在子组件中定义路由。以下是一个嵌套路由的示例:

import React from 'react';
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';

const App = () => (
  <Router>
    <Switch>
      <Route path="/" exact component={Home} />
      <Route path="/about" component={About}>
        <Route path="/about/team" component={Team} />
        <Route path="/about/culture" component={Culture} />
      </Route>
    </Switch>
  </Router>
);

动态路由匹配 (Dynamic Route Matching)

动态路由匹配允许你根据 URL 中的参数来渲染不同的组件。以下是一个动态路由匹配的示例:

<Route path="/user/:id" component={User} />

在这个例子中,:id 是一个动态参数,你可以通过 this.props.match.params.id 访问它。

路由守卫 (Route Guards)

路由守卫允许你控制对特定路由的访问。以下是一个简单的路由守卫示例:

import React from 'react';
import { Route, Redirect } from 'react-router-dom';

const PrivateRoute = ({ component: Component, ...rest }) => (
  <Route {...rest} render={props => (
    localStorage.getItem('token') ? (
      <Component {...props} />
    ) : (
      <Redirect to={{ pathname: '/login' }} />
    )
  )} />
);

export default PrivateRoute;

在上述代码中,我们使用 localStorage 来存储用户身份验证令牌。如果用户没有令牌,则将他们重定向到登录页面。

相关链接

更多关于 React Router 的信息,可以访问我们的 React Router 教程

React Router