History库源码分析-parsePath

2023-11-15 11:29:21

parsePath(path: string)


返回对象类型: Partial

Path 类型
export interface Path {
  pathname: string;
  search: string;
  hash: string;
}

通过解析传入的path,返回一个对象,这个对象包含pathname、search、hash

源码:

export function parsePath(path: string): Partial<Path> {
  let parsedPath: Partial<Path> = {};
  if (path) {
    let hashIndex = path.indexOf("#");
    if (hashIndex >= 0) {
      // 解析hash
      parsedPath.hash = path.substr(hashIndex);
      path = path.substr(0, hashIndex);
    }
    let searchIndex = path.indexOf("?");
    if (searchIndex >= 0) {
      // 解析查询参数search
      parsedPath.search = path.substr(searchIndex);
      path = path.substr(0, searchIndex);
    }
    // pathname
    if (path) {
      parsedPath.pathname = path;
    }
  }
  return parsedPath;
}

目录

相关推荐
为什么更多前端应用偏向于单页面应用路由模式-原生historyHistory库源码分析-Action动作类型History库源码分析-createLocation路由模式-hash