• 解析vue项目中的 url 的 query 数据


    // 用于解析vue项目中的 url 的 query 数据
    // 如是 hash 模式,取 location.hash,如 #/xxx?a=1&b=2
    // 如是 history 模式,取 location.search
    function parseQuery () {
      const str = location.search || location.hash || ''
      const [hash, query] = str.split('?')
      const result = { hash, query: {} }
      if (query) {
        const strs = query.split('&')
        for (let i = 0; i < strs.length; i++) {
          const [key, value] = strs[i].split('=')
          result.query[key] = value
        }
      }
      return result
    }

    使用的时候

    function checkLogin () {
      if (!sessionStorage.loginToken) {
        const { hash, query } = parseQuery()
        if (query.token) {
          window.sessionStorage.loginToken = query.token
          window.sessionStorage.loginUserId = query.userId
          window.sessionStorage.loginTicket = query.ticket
    
          let routePath = ''
          const pushQuery = removeAuthInfoFromQuery(query)
          if (hash) {
            // hash 模式
            routePath = hash.slice(hash.indexOf('#') + 1)
          } else {
            // history 模式
            routePath = location.pathname
          }
          router.replace({
            path: routePath,
            query: pushQuery
          })
        } else {
          getToken()
        }
      }
    }
  • 相关阅读:
    git操作
    计算天数
    web小结~2019.3.24
    数据统计值的计算+PYTHON
    python~序列类型及操作
    一个日期加上若干天后是什么日期
    完数与盈数
    分段函数
    求最大最小
    D进制的A+B
  • 原文地址:https://www.cnblogs.com/yixiancheng/p/15798212.html
Copyright © 2020-2023  润新知