0%

看vue-router源码的一些收获

通配符路由

阅读源码发现, vue router 源码中对通配符路由做了特殊处理,保证其始终在匹配列表最后,非嵌套的路由必须以 slash 开头 (/)

一些限制

path 属性是必须的,component 必须是一个实际的组件

单页面多路由区域

单页面多路由区域 看了源码才知道有这种操作
router-view 可以设置 name,如果不设定会匹配到默认的

1
2
3
4
5
6
7
8
9
10
11
12
13
// 路由配置
{
path: '/Hi',
components: {
default:Hello,
left:Hi2,
right:Hi1
}
}
// 页面里这么写
<router-view></router-view>
<router-view name="left"></router-view>
<router-view name="right"></router-view>

跳转原理

  1. 首先通过 createRouteMap 创建路由映射,然后使用映射创建 matcher 函数
  2. 路由跳转的核心是 transitionTo 方法,该方法首先判定是不是相同的路由,相同的路由不进行跳转
    • path,hash,query 相同 path 相同隐含了 param 相同
    • 路由名,hash,query,param 相同