react-router-dom v6 路由守卫 异步请求
时间: 2023-12-23 20:20:08 浏览: 120
对于react-router-dom v6,可以使用<Route>组件的element属性来实现路由守卫和异步请求。下面是一个示例代码:
```jsx
import { Route, Navigate } from 'react-router-dom';
function PrivateRoute({ path, element }) {
const isAuthenticated = checkAuth(); // 检查用户是否已登录
if (isAuthenticated) {
return <Route path={path} element={element} />;
} else {
return <Navigate to="/login" replace />;
}
}
function App() {
return (
<Routes>
<Route path="/" element={<Home />} />
<PrivateRoute path="/dashboard" element={<Dashboard />} />
<Route path="/login" element={<Login />} />
</Routes>
);
}
```
在上述代码中,PrivateRoute组件用于实现路由守卫功能。通过调用checkAuth()函数来检查用户是否已登录。如果用户已登录,PrivateRoute会渲染传入的element属性,即目标路由组件;如果用户未登录,PrivateRoute会使用Navigate组件重定向到登录页面。
请注意,这只是一个简单的示例,具体的路由守卫和异步请求的逻辑需要根据具体项目的需求进行实现。
阅读全文