vue如何清除地址欄參數(shù)
vue清除地址欄參數(shù)
第一種:
this.$router.push({ query: {} });第二種:
let path = this.$route.path; //先獲取路由路徑 this.$router.push(path); //再跳轉(zhuǎn)路由路徑,query參數(shù)沒帶過去,所以被清除了
獲取地址欄參數(shù)并且截取
今天寫項(xiàng)目遇到這樣一個(gè)問題,因?yàn)槲沂菃为?dú)寫的三個(gè)頁面,我那個(gè)頁面獲取數(shù)據(jù)是要獲取到上個(gè)頁面?zhèn)鬟^來的參數(shù)才能進(jìn)行請(qǐng)求,因?yàn)閯傞_始寫參數(shù)是直接寫成固定死的了

然后我就在想,肯定要獲取到當(dāng)前頁面的url地址,這樣后邊才能截取url地址中的參數(shù),代碼如下
var url = window.location.href; //獲取地址欄路徑
var temp1 = url.split('?');//對(duì)url地址進(jìn)行分割
var pram = temp1[1];
var keyValue = pram.split("&");
var obj = {};
for (var i = 0; i < keyValue.length; i++) {//循環(huán)分割掛過后的地址
var item = keyValue[i].split("=");
var key = item[0];
var value = item[1];
obj[key] = value;
}
console.log(url);
console.log(pram);
console.log(keyValue);
consile.log(obj)//obj就是我么分割后從上個(gè)頁面?zhèn)鬟^來數(shù)據(jù)的對(duì)象
console.log(obj.orgCode);
this.orgCode = obj.orgCode;//對(duì)data里面定義的orgCode進(jìn)行賦值
我是要取到上面代碼中obj對(duì)象里面的orgCode參數(shù),然后在接口中進(jìn)行拼接參數(shù)就可以了
然后這個(gè)寫完我又遇到了一個(gè)問題,如果從上個(gè)頁面沒傳過來參數(shù)的話,瀏覽器會(huì)報(bào)split的錯(cuò)。因?yàn)楹筮厸]有參數(shù)進(jìn)行分割,如下圖

后來我又想到一個(gè)方法,我們可以在進(jìn)行split分割的時(shí)候進(jìn)行判斷,有參數(shù)的話就進(jìn)行分割,沒傳過來參數(shù)就return false 返回一個(gè)false值 代碼如下:
//在methods里面定義一個(gè)方法
getQueryString(variable) {
var index = window.location.href.indexOf("?");//獲取地址欄路徑并進(jìn)行分割
var query = window.location.href.substr(
index + 1,
window.location.href.length
);
var vars = query.split("&");
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split("=");
if (pair[0] == variable) {
return pair[1];
}
}
return false;//如果沒有參數(shù)就返回false 值,就不會(huì)出現(xiàn)上邊報(bào)錯(cuò)的情況了
},
然后我們需要在上邊調(diào)用這個(gè)方法
created() {
//調(diào)用請(qǐng)求接口并獲取url的orgCode參數(shù)
this.Getactiononlad(this.getQueryString("orgCode"));
},
上面代碼 this.Getactiononlad是我定義的請(qǐng)求接口方法
在后邊直接在調(diào)用獲取url地址的方法
orgCode就是要獲取的參數(shù)
methods: {
Getactiononlad(orgCode) {//定義請(qǐng)求接口的方法
//要把orgCode傳在方法里面
getObjectInfo(orgCode, this.ApprovalUserName)//getObjectInfo是在api封裝好的接口
.then((res) => {
if (res.isSuccess == true) {
if (res.data.list.length > 0) {
this.$toast("請(qǐng)求成功");
this.iSshownotFiled = false;
res.data.list.forEach((element) => {
this.Ordersubmitlist.push(element);
});
} else {
this.iSshownotFiled = true;
}
} else {
this.$$toast("請(qǐng)求出現(xiàn)異常");
}
})
.catch((error) => {
this.$toast(error.message);
});
},
}
這個(gè)時(shí)候我們看一下效果

它已經(jīng)不報(bào)錯(cuò)了,顯示沒有數(shù)據(jù)
如果我們傳orgCode參數(shù)的話,效果圖如下

這樣通過上個(gè)頁面url傳過來的orgCode值,我們也不會(huì)報(bào)錯(cuò),也顯示數(shù)據(jù)拉
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue3?+?async-validator實(shí)現(xiàn)表單驗(yàn)證的示例代碼
表單驗(yàn)證可以有效的過濾不合格的數(shù)據(jù),減少服務(wù)器的開銷,并提升用戶的使用體驗(yàn),今天我們使用?vue3?來做一個(gè)表單驗(yàn)證的例子,需要的朋友跟隨小編一起學(xué)習(xí)下吧2022-06-06
淺析Vue下的components模板使用及應(yīng)用
這篇文章主要介紹了Vue下的components模板的使用及應(yīng)用,本文通過代碼介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-11-11
vue使用ECharts實(shí)現(xiàn)折線圖和餅圖
這篇文章主要為大家詳細(xì)介紹了vue使用ECharts實(shí)現(xiàn)折線圖和餅圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
關(guān)于ElementPlus中的表單驗(yàn)證規(guī)則詳解
這篇文章主要介紹了關(guān)于ElementPlus中的表單驗(yàn)證,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06
Vue項(xiàng)目設(shè)置多個(gè)靜態(tài)文件及自定義靜態(tài)文件目錄的方案詳解
本文介紹了如何在Vue項(xiàng)目中配置多個(gè)靜態(tài)文件目錄,并提供了使用Vite和Webpack實(shí)現(xiàn)的示例,通過在vite.config.ts或vue.config.js中引入相關(guān)插件和配置,可以輕松實(shí)現(xiàn)自定義靜態(tài)文件目錄,希望這些內(nèi)容對(duì)您有所幫助,感興趣的朋友一起看看吧2025-01-01
在Vue中使用CSS3實(shí)現(xiàn)內(nèi)容無縫滾動(dòng)的示例代碼
這篇文章主要介紹了在Vue中使用CSS3實(shí)現(xiàn)內(nèi)容無縫滾動(dòng)的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
Vue中引入使用patch-package為依賴打補(bǔ)丁問題
這篇文章主要介紹了Vue中引入使用patch-package為依賴打補(bǔ)丁問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03

