js和Vue获取URL参数

2,779 阅读1分钟

本文已参与[新人创作礼]活动,一起开启掘金创作之路。

js获取URL参数

js代码获取URL参数的方法:

getUrlParam(param) {
    // 获取由全部参数组成的字符串。
    let query = window.location.search.substring(1);
    // 分割参数,得到每一个参数字符串组成的数组。
    let vars = query.split('&');
    // 遍历数组,得到每一个参数字符串。
    for (let i = 0; i < vars.length; i++) {
        // 分割每一个参数字符串,得到参数名和参数值组成的数组。
        var pair = vars[i].split('=');
        // 如果参数名等于传入的param,则返回该值。
        if (pair[0] == param) {
            return decodeURI(pair[1]);
        }
    }
    // 若参数不存在,则返回false。
    return false;
}

直接调用getUrlParam(param)方法,会解析当前页面的URL。

若当前页面的URL为:

http://localhost:8080/school/class?schoolNumber=1&classNumber=100

那么如果想要获取classNumber的值,则使用getUrlParam("classNumber")就能获取。

其中,getUrlParam(param)方法中的参数param为URL中某个参数名。

window.location

window.location 对象用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面。

image.png

在使用时,window前缀可忽略,常用的window.location:

  • window.location.hostname 返回 web 主机的域名。
  • window.location.pathname 返回当前页面的路径和文件名。
  • window.location.port 返回 web 主机的端口 (80 或 443)。
  • window.location.protocol 返回所使用的 web 协议(http: 或 https:)。
  • window.location.href 返回当前页面的 URL。
  • window.location.search 获取从?开始的URL。
  • window.location.hash 获取从#开始的URL。
  • window.location.assign(URL)方法页面跳转,将当前文档转为新的文档。
  • window.location.replace(URL)方法页面跳转,替换当前文档为新的文档。

如location.assign("juejin.cn"), 则会前往掘金首页。

加载 URL 指定的新的 HTML 文档,相当于一个链接,跳转到指定的URL,当前页面会转为新页面内容,可以点击后退返回上一个页面。

使用replace时,不会被浏览器记录。有三个页面 A B C,若使用都assign跳转,A->B->C,在C页面点击左上角回退键会回到B,B页面点击回退键会回到A。若在B页面使用replace跳转,则A->B->C和assign一样,但是点击C页面左上角回退键时,会直接返回到A页面。

window.location.search.substring(1)就是通过window.location.search获取了?(包括?)后面的字符串。使用substring(1)就是获取从索引1开始到最后的字符串,相当于去掉问号。即由?schoolNumber=1&classNumber=100变为schoolNumber=1&classNumber=100。

window.location.search

image.png

window.location.search.substring(1)

image.png

使用split('&')分割字符串,将参数字符串转换成数组。

image.png

遍历数组,使用split('=')分割字符串,获取参数名和参数值。

Vue获取URL参数

获取参数的对象:

this.$route.query

image.png

获取具体的参数:

this.$route.query.classNumber

image.png