三、【React-Router5】Switch

本文探讨了在React应用中使用React-Router5时遇到的路由匹配问题。当path和组件不一对一对应时,路由会遍历所有配置,导致效率下降。为了解决这个问题,引入了`Switch`组件,它能确保路由匹配的效率,实现一对一的映射关系。通过将`Route`组件包裹在`Switch`内,路由匹配将只选择第一个匹配的组件,提高了应用性能。
摘要由CSDN通过智能技术生成

在这里插入图片描述

1、发现问题

  • 以上文代码格式添加一个路由组件 Test,使得 App.js 注册路由写法如下:
<Route path='/about' component={About} />
<Route path='/home' component={Home} />
<Route path='/home' component={Test} />
  • 此时path和组件不是一对一,但是依然可以正常运行,结果如下:

在这里插入图片描述

  • 此时就发现了 Route 匹配机制的问题,它会循环所有的配置,而不是遇到匹配的组件就结束匹配,不仅不能明确一对一的概念,也会有效率问题

2、解决问题

  • 闲言少叙,Switch 闪亮登场!!!**

    • 通常情况下,path和component是一一对应的关系
    • Switch可以提高路由匹配效率(单一匹配)
import { Route, Switch } from 'react-router-dom'

<Switch>
    <Route path='/about' component={About} />
    <Route path='/home' component={Home} />
    <Route path='/home' component={Test} />
</Switch>
  • 此时结果如下:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

纯纯的小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值