zoukankan      html  css  js  c++  java
  • react-router-dom switch & match

    Renders the first child <Route> or <Redirect> that matches the location.

    If the URL is /about, then <About><User>, and <NoMatch> will all render because they all match the path. This is by design, allowing us to compose <Route>s into our apps in many ways, like sidebars and breadcrumbs, bootstrap tabs, etc.

    import { Route } from "react-router";
    
    let routes = (
      <div>
        <Route path="/about">
          <About />
        </Route>
        <Route path="/:user">
          <User />
        </Route>
        <Route>
          <NoMatch />
        </Route>
      </div>
    );

    Occasionally, however, we want to pick only one <Route> to render. If we’re at /about we don’t want to also match /:user (or show our “404” page). Here’s how to do it with Switch:

    import { Route, Switch } from "react-router";
    
    let routes = (
      <Switch>
        <Route exact path="/">
          <Home />
        </Route>
        <Route path="/about">
          <About />
        </Route>
        <Route path="/:user">
          <User />
        </Route>
        <Route>
          <NoMatch />
        </Route>
      </Switch>
    );

    Now, if we’re at /about<Switch> will start looking for a matching <Route><Route path="/about"/> will match and <Switch> will stop looking for matches and render <About>. Similarly, if we’re at /michael then <User> will render.

    We can manually set the variable parameters like this: 

     <Route path="/scan/detail/:trx/:tokenAddress" component={ScanDetail} />

    And then we can get this parameter in the subcomponent:

    let { tokenAddress } = this.props.match.params;

    match object contains information about how a <Route path> matched the URL. match objects contain the following properties:

    • params - (object) Key/value pairs parsed from the URL corresponding to the dynamic segments of the path
    • isExact - (boolean) true if the entire URL was matched (no trailing characters)
    • path - (string) The path pattern used to match. Useful for building nested <Route>s
    • url - (string) The matched portion of the URL. Useful for building nested <Link>s

    You’ll have access to match objects in various places:

    If a Route does not have a path, and therefore always matches, you’ll get the closest parent match. Same goes for withRouter.

  • 相关阅读:
    流 例题

    容器集合整理
    容器集合
    容器 集合知识点
    面向对象回顾
    面向对象例题
    Java常用的8大排序算法
    Java中两个动态代理
    为什么synchronized无法禁止指令重排,却能保证有序性
  • 原文地址:https://www.cnblogs.com/xulei1992/p/15179717.html
Copyright © 2011-2022 走看看