vue如何清除地址欄參數(shù)
vue清除地址欄參數(shù)
第一種:
this.$router.push({ query: {} });
第二種:
let path = this.$route.path; //先獲取路由路徑 this.$router.push(path); //再跳轉(zhuǎn)路由路徑,query參數(shù)沒帶過去,所以被清除了
獲取地址欄參數(shù)并且截取
今天寫項目遇到這樣一個問題,因為我是單獨(dú)寫的三個頁面,我那個頁面獲取數(shù)據(jù)是要獲取到上個頁面?zhèn)鬟^來的參數(shù)才能進(jìn)行請求,因為剛開始寫參數(shù)是直接寫成固定死的了
然后我就在想,肯定要獲取到當(dāng)前頁面的url地址,這樣后邊才能截取url地址中的參數(shù),代碼如下
var url = window.location.href; //獲取地址欄路徑 var temp1 = url.split('?');//對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就是我么分割后從上個頁面?zhèn)鬟^來數(shù)據(jù)的對象 console.log(obj.orgCode); this.orgCode = obj.orgCode;//對data里面定義的orgCode進(jìn)行賦值
我是要取到上面代碼中obj對象里面的orgCode參數(shù),然后在接口中進(jìn)行拼接參數(shù)就可以了
然后這個寫完我又遇到了一個問題,如果從上個頁面沒傳過來參數(shù)的話,瀏覽器會報split的錯。因為后邊沒有參數(shù)進(jìn)行分割,如下圖
后來我又想到一個方法,我們可以在進(jìn)行split分割的時候進(jìn)行判斷,有參數(shù)的話就進(jìn)行分割,沒傳過來參數(shù)就return false 返回一個false值 代碼如下:
//在methods里面定義一個方法 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 值,就不會出現(xiàn)上邊報錯的情況了 },
然后我們需要在上邊調(diào)用這個方法
created() { //調(diào)用請求接口并獲取url的orgCode參數(shù) this.Getactiononlad(this.getQueryString("orgCode")); },
上面代碼 this.Getactiononlad是我定義的請求接口方法
在后邊直接在調(diào)用獲取url地址的方法
orgCode就是要獲取的參數(shù)
methods: { Getactiononlad(orgCode) {//定義請求接口的方法 //要把orgCode傳在方法里面 getObjectInfo(orgCode, this.ApprovalUserName)//getObjectInfo是在api封裝好的接口 .then((res) => { if (res.isSuccess == true) { if (res.data.list.length > 0) { this.$toast("請求成功"); this.iSshownotFiled = false; res.data.list.forEach((element) => { this.Ordersubmitlist.push(element); }); } else { this.iSshownotFiled = true; } } else { this.$$toast("請求出現(xiàn)異常"); } }) .catch((error) => { this.$toast(error.message); }); }, }
這個時候我們看一下效果
它已經(jīng)不報錯了,顯示沒有數(shù)據(jù)
如果我們傳orgCode參數(shù)的話,效果圖如下
這樣通過上個頁面url傳過來的orgCode值,我們也不會報錯,也顯示數(shù)據(jù)拉
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
element-ui中el-cascader動態(tài)加載和默認(rèn)值詳解
vue+elementUI項目中el-cascader級聯(lián)選擇器使用頻率非常高,下面這篇文章主要給大家介紹了關(guān)于element-ui中el-cascader動態(tài)加載和默認(rèn)值的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05vue3+vite2實(shí)現(xiàn)動態(tài)綁定圖片的優(yōu)雅解決方案
這篇文章主要為大家詳細(xì)介紹了vue3+vite2實(shí)現(xiàn)動態(tài)綁定圖片的優(yōu)雅解決方案,文中的示例代碼簡潔易懂,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-08-08vue3插槽:el-table表頭插入tooltip及更換表格背景色方式
這篇文章主要介紹了vue3插槽:el-table表頭插入tooltip及更換表格背景色方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06Vue 清除Form表單校驗信息的解決方法(清除表單驗證上次提示信息)
這篇文章主要介紹了Vue 清除Form表單校驗信息的解決方法(清除表單驗證上次提示信息),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04vue如何封裝自己的Svg圖標(biāo)組件庫(svg-sprite-loader)
這篇文章主要介紹了vue如何封裝自己的Svg圖標(biāo)組件庫(svg-sprite-loader),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04解決vue使用vant輪播組件swipe + flex時文字抖動問題
這篇文章主要介紹了解決vue使用vant輪播組件swipe + flex時文字抖動問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2021-01-01