在沒有使用webpack+vue router開發中,想要獲取RUL傳的參數地址,直接通過一個函數就可以獲得。
比如在 www.test.com/test.html?sign=test 地址中,想要獲取sign的值,通常的方法是用一個函數,
var getUrlStr = function(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if(r != null) return unescape(r[2]);
return null;
}
var sign = getUrlStr ("sign");
sign的值就為 test ;
那么問題來了,用router開發,是直接通過路由跳轉的頁面,那該怎樣獲取呢?
首先想到的也是通過以上方法獲取,但試了一下,表示行不通。通過百度了解到,可以直接使用提供的方法;
就如這樣,也是同樣的傳參 http://localhost:8080/#/one?sign=nsrjbxx
var sign = this.$route.query.sgin ;
this 指的是 vue 對象,所以放在vue的方法中直接使用就行了,sign 是參數,這個是可以自定義的。
理解很潛,簡單的能達到目的,有更深的理解歡迎來評!!!
最近發現 可以簡單的修改下getUrlStr 函數也是可以實現的
var getUrlStr = function(name){ /** * 獲取地址欄參數 */ let reg = new RegExp("(^|\\?|&)" + name + "=([^&]*)(\\s|&|$)","i"); if(reg.test(window.location.href)){ return unescape(RegExp.$2.replace(/\+/g," ")) } return undefined }
直接通過獲取location.href 得到URL的地址,在根據獲取參數就ok了!