zoukankan      html  css  js  c++  java
  • 临时笔记-react-router

    一、基本用法

    npm install --save react-router
    

    路由器Router就是React的一个组件

    import { Router } from 'react-router';
    render(<Router/>, document.getElementById('app'));
    

    Router组件是一个容器,路由要通过Route组件定义:

    import { Router, Route, hashHistory } from 'react-router';
    
    render((
      <Router history={hashHistory}>
        <Route path="/" component={App}/>
        <Route path="/repos" component={Repos}/>
        <Route path="/about" component={About}/>
      </Router>
    ), document.getElementById('app'));
    

    用户访问根路由/(比如http://www.example.com/)。路由的切换由URL的hash变化决定,举例来说,用户访问http://www.example.com/,实际会看到的是http://www.example.com/#/。上面代码中,用户访问/repos(比如http://localhost:8080/#/repos)时,加载Repos组件;

    二、嵌套路由

    <Router history={hashHistory}>
      <Route path="/" component={App}>
        <Route path="/repos" component={Repos}/>
        <Route path="/about" component={About}/>
      </Route>
    </Router>
    

    用户访问/repos时,会先加载App组件,然后在它的内部再加载Repos组件

    <App>
      <Repos/>
    </App>
    

    注意,被嵌套的组件App要写成:

    render() {
      return <div> {this.props.children} </div>
    }
    

    this.props.children就是子组件

    子路由可以不写在Router组件里面,而是单独传入Router组件的routes属性:

    let routes = <Route path="/" component={App}>
      <Route path="/repos" component={Repos}/>
      <Route path="/about" component={About}/>
    </Route>;
    
    <Router routes={routes} history={browserHistory}/>
    

    三、path 属性

    path属性指定路由的匹配规则,可以省略。这样的话,不管路径是否匹配,总是会加载指定组件:

    <Route path="inbox" component={Inbox}>
       <Route path="messages/:id" component={Message} />
    </Route>
    

    当用户访问/inbox/messages/:id时,会加载下面的组件:

    <Inbox>
      <Message/>
    </Inbox>
    

    现在如果把 path="inbox"去掉,加载结果还是一样的

    四、通配符

  • 相关阅读:
    别老想着怎么用好RPC框架,你得多花时间琢磨原理
    业务代码真的会有这么多坑?
    mac全部看视频屏幕闪烁适用于白果黑果
    iterm2 proxy配置
    源端和目标端数据对比
    frp内网穿透,rdp远程连接Windows计算机
    frp rdp远程桌面
    按块提交抽取数据
    创建索引被锁ora-00054资源正忙,但指定以nowait方式
    2017-9-17C#笔记(方法,方法参数 ,foreach语句)
  • 原文地址:https://www.cnblogs.com/sanhuamao/p/13943755.html
Copyright © 2011-2022 走看看