vue3中,哈希模式URL的参数拼接在#/前,获取失败问题

1.正常获取
import {useRouter} from "vue-router"
let router = useRouter()
router.currentRoute.value.query//获取到是路径中的参数对象
2.通过window对象获取
let b = new URL(window.location.href);
let obj = convertQueryStringToObject(b.search.replace("?", ""))
//处理地址栏数据
function convertQueryStringToObject(queryString) {
var obj = {};
var pairs = queryString.split("&");

for (var i = 0; i < pairs.length; i++) {
  var pair = pairs[i].split("=");
  var key = decodeURIComponent(pair[0]);
  var value = decodeURIComponent(pair[1]);
  obj[key] = value;
}
return obj;
}
3.判断url中是否是#/结尾,如果是就用window对象来获取参数对象,否则就使用vue3的router来获取参数对象
if(window.location.href.endsWith("#/")){
    console.log("路由是有#/结尾");
    let b = new URL(window.location.href);
    //处理地址栏数据
    function convertQueryStringToObject(queryString) {
    var obj = {};
    var pairs = queryString.split("&");
    for (var i = 0; i < pairs.length; i++) {
        var pair = pairs[i].split("=");
        var key = decodeURIComponent(pair[0]);
        var value = decodeURIComponent(pair[1]);
        obj[key] = value;
    }
    return obj;
    }
    let obj = convertQueryStringToObject(b.search.replace("?", ""))//参数对象
}else{
    console.log("路由是有参数结尾");
    let router = useRouter();
   let obj = router.currentRoute.value.query//参数对象
}
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐