前端路由(四)-Switch组件与exact属性——Switch组件-保证中间的路由映射仅仅匹配一个 & exact属性-精确匹配

本文介绍了React Router中的Switch组件及其exact属性的使用。Switch组件确保中间的路由只匹配一个,若存在多个匹配,则优先选择第一个。exact属性用于实现精确匹配,避免路径的包含关系。通过示例代码展示了如何配置Route组件,以及如何处理404页面。文章还包含了创建和运行项目的步骤。
摘要由CSDN通过智能技术生成

Switch组件与exact属性——Switch组件-保证中间的路由映射仅仅匹配一个 & exact属性-精确匹配

  • Switch作用:保证中间的路由映射仅仅匹配一个,如果有多个匹配,以最先匹配的为准
    如果Route组件没有path,会作为默认显示的组件
  • Route组件中exact属性的作用:路径进行精确匹配,不会存在包含关系(比如:/about 路径不会匹配 / 路径)
<Switch>
  <Route path='/' exact component={Home}/>
  <Route path='/info' component={News}/>
  <Route path='/tech' component={Tech}/>
  <Route component={NoMatch}/>
</Switch>
实例

第一步:安装依赖包

npm install react-router-dom -D

第二步:在APP.js同层级的component下新建router文件夹,其下新建文件03.js

第三步:在App.js中进行导入

import React from 'react';
import BaseRouter from './component/router/03.js'

function App () {
  return (
    <div>
      <BaseRouter/>
    </div>
  )
}

export default App;

component/router/03.js文件如下

/*
  路由的匹配模式

  exact 属性的作用:精确匹配路由的路径,不存在包含关系

*/

import React from 'react'
import { BrowserRouter, Route, Link, Switch } from 'react-router-dom'

function Home () {
  return <div>Home</div>
}
function Tech () {
  return <div>Tech</div>
}
function Edu () {
  return <div>Edu</div>
}
function NotFound () {
  return <div>页面被狗狗叼走了</div>
}


class BaseRouter extends React.Component {
  render () {
    return (
      <BrowserRouter>
        <div>
          <div>基础路由</div>
          <hr/>
          {/*路由链接*/}
          <Link to='/'>主页</Link>
          <Link to='/tech'>科技</Link>
          <Link to='/edu'>教育</Link>
          <Link to='/edu1'>404</Link>
          {/*路由组件显示的位置*/}
          <Switch>
            <Route path='/' exact component={Home}/>
            <Route path='/tech' component={Tech}/>
            <Route path='/edu' component={Edu}/>
            {/*默认匹配组件*/}
            <Route component={NotFound}/>
          </Switch>
        </div>
      </BrowserRouter>
    )
  }
}

export default BaseRouter

npm run start启动项目,页面如下:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值