首页 > web前端 > js教程 > 正文

如何在 React Router 4 中实现经过身份验证的路由?

Barbara Streisand
发布: 2024-10-22 23:53:28
原创
476 人浏览过

How to Implement Authenticated Routes in React Router 4?

在 React Router 4 中管理经过身份验证的路由

React Router 4 引入了一些更改,这些更改阻止使用传统方法直接实现经过身份验证的路由。为了解决这个问题,让我们探索替代解决方案。

遇到错误:

在您的初始实现中,您尝试使用 和同时,这在 React Router 4 中是被禁止的。

建议的方法:

为了克服这个错误,我们可以利用 组件与自定义 结合使用成分。 组件将根据 authed 属性有条件地渲染,如果用户未经过身份验证,则显示所需的路由或重定向到登录页面。

PrivateRoute 组件:

function PrivateRoute ({component: Component, authed, ...rest}) {
  return (
    <Route
      {...rest}
      render={(props) => authed === true
        ? <Component {...props} />
        : <Redirect to={{pathname: '/login', state: {from: props.location}}} />}
    />
  )
}
登录后复制

更新的路由:

<Route path='/' exact component={Home} />
<Route path='/login' component={Login} />
<Route path='/register' component={Register} />
<PrivateRoute authed={this.state.authed} path='/dashboard' component={Dashboard} />
登录后复制

在 render() 方法中调度操作:

您对在 render 中调度操作的关注( ) 方法有效。通常不鼓励这样做,因为它可能导致潜在的副作用和性能问题。相反,您应该在生命周期方法(如 componentDidMount)中分派操作,或使用 React 的状态管理工具(如 Redux 或 Context API)。

以上是如何在 React Router 4 中实现经过身份验证的路由?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!