美文网首页
vue从链接里面获取参数

vue从链接里面获取参数

作者: 小小鱼yyds | 来源:发表于2021-06-07 15:59 被阅读0次

如果是从连接地址后面获取某个参数,只需要:this.$route.query.xxx即可,但也有可能面对多种情况:

(1)从后台返回的链接里面取参数

getParamQueryString (url, name) {
      let subStr = name + '='
      if (url.indexOf(subStr) !== -1) {
        let arr = url.split(subStr)
        let sub1 = arr[1]
        if (sub1.indexOf('&') !== -1) {
          let arr2 = sub1.split('&')
          let sub2 = arr2[0]
          return sub2
        } else {
          return sub1
        }
      }
      return ''
}

使用方式:

let url = 'https://www.baidu.com/?aNo=11928282983&type=3&kys=27783'
 console.log('打印-----', this.getParamQueryString(url, 'aNo'))
// 11928282983

自己封装的方法,使用起来非常方便,可以放在公共类里面

(2)跳转到其他页面时,继续携带原链接参数

getParamOriginalString() {
      const queryStr = this.$route.query
      const params = []
      for (const key in queryStr) {
        params.push(key + '=' + queryStr[key])
      }
      return '?' + params.join('&')
}

使用方式:

let paramsStr = this.getParamOriginalString()
this.$route.push(`/nextPage${paramsStr}`)

(3)当使用hash模式的时候,从连接里面获取#index.html/前面的参数(针对微信授权取code)

getQueryString(name) {
      const reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i')
      const r = window.location.search.substr(1).match(reg)
      if (r != null) return unescape(r[2])
      return null
}

(4)当使用hash模式的时候,从连接里面获取#index.html/后面的参数

getQueryStringByChannel(name) {
      const reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i')
      if (!window.location.hash.split('?')[1]) {
        return null
      }
      const re = window.location.hash.split('?')[1].match(reg)
      if (re != null) return unescape(re[2])
      return null
 }

相关文章

网友评论

      本文标题:vue从链接里面获取参数

      本文链接:https://www.haomeiwen.com/subject/qsnnsltx.html