探索react-ReactRouter


React Router

声明式路由,动态路由

三种实现方式

  1. url 路由 (BrowserRouter)(react-router-dom 提供)
  2. hash 路由 (HashRouter)(react-router-dom 提供)
  3. 内存路由 (MemoryRouter)(react-router 提供)

API

1. <Link to='/about'/> 普通连接,不会触发浏览器刷新
2. <NavLink to='/about' activeClassName='selected'/> 有选中状态
3. <Prompt when={formIsHalfFilledOut} message="success"/> 满足条件确认离开
4. <Router exact path='/' render={()=>(
    loggedIn?(<Rediect to="/xxx"></Rediect>
    ): (
    <Hello/>
    )
   )}/> 重定向
5. <Route exact path="/" component={Home}></Route> exact是精确匹配
6. <Switch>
    <Route exact path="/" component={Home}></Route>
    <Route exact path="/a" component={Home1}></Route>
    <Route exact path="/b" component={Home2}></Route>
    </Switch>
  只显示第一个匹配的路由

参数传递

const Topic = ({ match }) =>l <h1>Topic {match.params.id}</h1>;
<Router>
    <Link to="/topic/1">Topic 1</Link>
    <Route path="/topic/:id" component={Topic} />
</Router>;

通过 this.props.match.id 获取参数

嵌套路由

管理路由授权

通过区分公开路由和受保护路由,访问未授权路由是重定向到指定页面


文章作者: 沐雪
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 沐雪 !
评论
 上一篇
2019前端路线图 2019前端路线图
document.querySelectorAll('.github-emoji') .forEach(el => { if (!el.dataset.src) { retur
2019-02-23 沐雪
下一篇 
探索react-redux 探索react-redux
redux提供唯一一个 store 来存储数据,view 中尽量没有其他状态,使得组件通信更加方便 action 是唯一可以改变状态的,也就是改变状态必须派发一个 action 通过纯函数(reducer)来更新 store(实际上是生成一
2019-02-11 沐雪
  目录