zoukankan      html  css  js  c++  java
  • React---路由的使用(二)

    一、NavLink

      NavLink可以实现路由链接的高亮,通过activeClassName指定样式名
    <NavLink activeClassName="demo" className="list-group-item" to="/about">About</NavLink>
    <NavLink activeClassName="demo" className="list-group-item" to="/home">Home</NavLink>

    二、Switch的使用

                    1.通常情况下,path和component是一一对应的关系。
                    2.Switch可以提高路由匹配效率(单一匹配)。
    1 {/* 注册路由 */}
    2 <Switch>
    3         <Route path="/about" component={About}/>
    4         <Route path="/home" component={Home}/>
    5         <Route path="/home" component={Test}/>
    6 </Switch>

    三、解决多级路径刷新页面样式丢失的问题

                    1.public/index.html 中 引入样式时不写 ./ 写 / (常用)
                    2.public/index.html 中 引入样式时不写 ./ 写 %PUBLIC_URL% (常用)
                    3.使用HashRouter

    四、路由的严格匹配与模糊匹配

                    1.默认使用的是模糊匹配(简单记:【输入的路径】必须包含要【匹配的路径】,且顺序要一致)
                    2.开启严格匹配:<Route exact={true} path="/about" component={About}/>
                    3.严格匹配不要随便开启,需要再开,有些时候开启会导致无法继续匹配二级路由
    1 <Switch>
    2         <Route exact path="/about" component={About}/>
    3         <Route exact path="/home" component={Home}/>
    4 </Switch>

    五、Redirect的使用    

                    1.一般写在所有路由注册的最下方,当所有路由都无法匹配时,跳转到Redirect指定的路由
                    2.具体编码:
                            
    1 <Switch>
    2         <Route path="/about" component={About}/>
    3         <Route path="/home" component={Home}/>
    4         <Redirect to="/about"/>
    5 </Switch>

    六、嵌套路由

          1.注册子路由时要写上父路由的path值
                     2.路由的匹配是按照注册路由的顺序进行的
          3.代码:
     1 import React, { Component } from 'react'
     2 import MyNavLink from '../../components/MyNavLink'
     3 import {Route,Switch,Redirect} from 'react-router-dom'
     4 import News from './News'
     5 import Message from './Message'
     6 
     7 export default class Home extends Component {
     8     render() {
     9         return (
    10                 <div>
    11                     <h3>我是Home的内容</h3>
    12                     <div>
    13                         <ul className="nav nav-tabs">
    14                             <li>
    15                                 <MyNavLink to="/home/news">News</MyNavLink>
    16                             </li>
    17                             <li>
    18                                 <MyNavLink to="/home/message">Message</MyNavLink>
    19                             </li>
    20                         </ul>
    21                         {/* 注册路由 */}
    22                         <Switch>
    23                             <Route path="/home/news" component={News}/>
    24                             <Route path="/home/message" component={Message}/>
    25                             <Redirect to="/home/news"/>
    26                         </Switch>
    27                     </div>
    28                 </div>
    29             )
    30     }
    31 }
     
     
  • 相关阅读:
    2022年第一天
    RestTemplate、 Ribbon、 OpenFeign 关系以及OpenFeign使用连接池
    linux下面编写简单的c++程序
    Rocket简介以及单机版安装
    事务源码(二)
    javaagent技术&Attach技术
    gateway网关原理
    Maven自定义插件以及使用
    AotucCrawler 快速爬取图片
    Monkey工具之fastbotiOS实践
  • 原文地址:https://www.cnblogs.com/le220/p/14701984.html
Copyright © 2011-2022 走看看