- 首先优化上节 【React-Router5】路由的基本使用 代码,去除多余注释和说明内容,使得默认页面如下:
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>
- 此时结果如下: