VueRouter内部方法
1. match
使用:this.$router.match('/count')
输入参数raw(/user/4739284722这种形式,类似route的path),current,redirectedFrom,结果返回匹配route
1 | match(raw: RawLocation, current?: Route, redirectedFrom?: Location): Route { |
2. currentRoute
使用:this.$router.currentRoute
用于获取当前history.current,也就是当前route,包括path、component、meta等
1 | get currentRoute(): ?Route { |
3. init
4. 全局路由钩子
在路由切换时被调用,经常在router/index.js中,进行路由守卫:router.beforeEach((to,from,next)=>{})
1 | // 将回调方法fn注册到beforeHooks里。registerHook会返回,fn执行后的callback方法,功能是将fn从beforeHooks删除 |
registerHook
将callback(参数fn)插入list,返回一个方法,方法实现的是从list中删除fn。也就是在callback执行后,通过调用这个方法,可以将fn从list中移除
1 | function registerHook(list: Array<any>, fn: Function): Function { |
5. 改变路由
1 | // 将回调方法fn注册到afterHooks里。registerHook会返回,fn执行后的callback方法,功能是将fn从afterHooks删除 |
6. getMatchedComponents
使用:this.$router.getMatchedComponents("/")
或者this.$router.getMatchedComponents({path: "/count",name: "count"})
,返回匹配的组件
1 | getMatchedComponents(to?: RawLocation | Route): Array<any> { |
resolve
如果this.$router.getMatchedComponents("/")
参数是个path,会来到这里解析
1 | resolve( |
creatHref
建立路由在浏览器中显示的格式
1 | function createHref(base: string, fullPath: string, mode) { |
7. addRoutes
动态新增路由
1 | addRoutes(routes: Array<RouteConfig>) { |