取消

vue本地路由获取不到参数问题

在使用vue开发系统时,有个客户扫码跳转到系统时默认一些信息,这些信息附带在url的参数中,由于vue页面会自动在url加一个#进行本地路由导航,参数就跑到#前面去了,然后使用route.query就获取不到参数了


问题

在使用vue开发系统时,有个客户扫码跳转到系统时默认一些信息,这些信息附带在url的参数中,由于vue页面会自动在url加一个#进行本地路由导航,参数就跑到#前面去了,然后使用route.query就获取不到参数了

解决

解决方案一

在url中提前添加#,这样vue页面就不会再次添加#了,比如这样:http://www.sex.com/#?name=selang

解决方案二

不使用query获取参数,使用自定义解析,如下

1
2
3
4
5
6
7
8
9
10
11
  getQueryVariable(variable) {
    var query = window.location.search.substring(1);
    var vars = query.split("&");
    for (var i = 0; i < vars.length; i++) {
      var pair = vars[i].split("=");
      if (pair[0] === variable) {
        return decodeURI(pair[1]);
      }
    }
    return "";
  }

这样获取

1
2
//name=selang
let name=getQueryVariable('name');

本文会经常更新,请阅读原文: https://dashenxian.github.io/post/vue%E6%9C%AC%E5%9C%B0%E8%B7%AF%E7%94%B1%E8%8E%B7%E5%8F%96%E4%B8%8D%E5%88%B0%E5%8F%82%E6%95%B0%E9%97%AE%E9%A2%98 ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

知识共享许可协议

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名 小神仙 (包含链接: https://dashenxian.github.io ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系 (125880321@qq.com)

登录 GitHub 账号进行评论