//user
import React from "react";
import { Route, Redirect } from "react-router-dom";
import LoginPage from "../pages/LoginPage";
export default function PrivateRoute({ component: Cmp, isLogin, ...rest }) {
return (
<Route
{...rest}
render={props =>
isLogin ? (
<Cmp {...props} />
) : (
<Redirect
to={{
pathname: "/login",
state: { redirect: props.location.pathname },
}}
/>
)
}
/>
);
}
//login
import React from "react";
import { Redirect } from "react-router-dom";
export default function LoginPage({ location, isLogin, login }) {
const redirect = location.state.redirect || "/"; //重定向地址
if (isLogin) {
return <Redirect to={redirect} />;
}
return (
<div>
<p>⽤户登录</p>
<br />
<button onClick={login}>登录</button>
</div>
);
}
//罗友
<Route exact path="/login" component={LoginPage} />
<PrivateRoute path="/user" component={UserPage} />
<PrivateRoute path="/user" component={UserPage} isLogin={true} />
路由守卫
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- # 1 :重定向路由 {path: '',redirectTo:'home', parthMatch:'full'...
- 先贴一波官方文档的内容 当一个导航触发时,全局前置守卫按照创建顺序调用。守卫是异步解析执行,此时导航在所有守卫 r...
- 项目开发中每一次路由的切换或者页面的刷新都需要判断用户是否已经登录,前端可以判断,后端也会进行判断的,我们前端最好...
- 先看官方文档导航守卫就是进行路由拦截,我们可以通过路由拦截,来判断用户是否登录,该页面用户是否有权限浏览,需要结合...