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//参数对象
}