vue-router疑惑点记录

时间:2023-06-01 21:49:03

以vue-router2.x讲解。

1.定义路由时,某路由对象里同时有component和redirect重定向参数,会怎样处理?

答: 忽略component,直接用redirect的值重定向到新路由路径,使用新路径的组件。

  例如,下面的第三个路由链接被点击时,会直接重定向到.....#/,然后使用'/'的组件。

vue-router疑惑点记录

2.为何我的嵌套路由没生效?见下图代码,点击第二个链接/foo时,没有渲染组件Foo,为何?

vue-router疑惑点记录

渲染结果如下

vue-router疑惑点记录

解答:子路由组件需要在父路由组件的<router-view></router-view>里渲染,这里的父路由组件没有提供<router-view></router-view>,所有子组件无法渲染。

3.相同路径可以匹配到多个路由,优先级是怎样的,该匹配谁

vue-router疑惑点记录

vue-router疑惑点记录

   为何匹配的foo2?官方文档说是“有时候,同一个路径可以匹配多个路由,此时,匹配的优先级就按照路由的定义顺序:谁先定义的,谁的优先级就最高。”然后去群里讨论,vueQQ群里说“路由这种明显不是深度优先搜索的,先匹配一级目录,找到了,就不匹配子路由了”。孟哥说最好看下源码。暂时先不研究了,昨天还说了,行云流水,自然而然。。