Route内部添加exact,也能解决path路径的匹配冲突问题吧

来源:3-2 列表页面的制作及路由配置(2)

jerrychane

2019-06-23 19:56:32

如题,Switch和exact用哪个好些

写回答

1回答

好帮手慕星星

2019-06-24

你好,

(1)exact属性作用是严格匹配路由,默认情况下没有参数exact 的效果等同于 exact = {false}, exact = { true } 可以解决路由冲突的问题。例如:

如果输入路由为/,那么/以及/detail都可以被匹配到进行渲染,可以添加上exact = { true } 属性就可以严格匹配了。

(2)<Switch>是渲染第一个被location匹配到的并且作为子元素的<Route>或者<Redirect>

  <Switch>是唯一的因为它仅仅只会渲染一个路径。相比之下(不使用<Switch>包裹的情况下),每一个被location匹配到的<Route>将都会被渲染。<Switch>是按照路由顺序进行匹配的,例如输入路由为/,如果route顺序为/和/detail,那么就会匹配/,一旦匹配到了,就会直接渲染,不会匹配下面的路由;如果route顺序为/detail和/,那么就会匹配/detail,所以如果想要渲染哪个组件,就需要按照顺序写。

3、这两个一个是标签,一个是属性,一般都会配合使用。在route外面包裹<Switch>标签,起到只匹配一个的效果,route中再使用exact属性,起到严格匹配的作用。

祝学习愉快!

0

0 学习 · 10739 问题

查看课程