Skip to content
导航

addRoute

TIP

添加一条新的路由记录。

addRoute接收两个参数:parentOrRouteroute。如果有两个参数时,parentOrRoute就是父路由的记录,route是要添加的路由;如果只有一个参数,parentOrRoute就是要添加的路由。

ts
function addRoute(
  parentOrRoute: RouteRecordName | RouteRecordRaw,
  route?: RouteRecordRaw
) {
  let parent: Parameters<typeof matcher['addRoute']>[1] | undefined
  let record: RouteRecordRaw
  // 如果parentOrRoute(string或symbol)是个name,那么parent就是根据这个name获取到的matcher
  if (isRouteName(parentOrRoute)) {
    parent = matcher.getRecordMatcher(parentOrRoute)
    record = route!
  } else {
    record = parentOrRoute
  }

  // 调用matcher.addRoute
  return matcher.addRoute(record, parent)
}

对于matcher.addRoute可参考matcher.addRoute

对于addRoute的流程如下图:

addRoute has loaded