前言:為什么要不通過路由直接獲取url中的參數?
vue中使用路由的方式設置url參數,但是這種方式必須要在路徑中附帶參數,而且這個參數是需要在vue的路由中提前設置好的。
相對來說,在某些情況下直接在url后面拼接?mid=100的方式傳遞參數更靈活,你不需要設置路由,只需要在url后拼接參數即可,但是這種方式就需要通過javascript獲取並提取url中的參數,通過傳統的方式直接在頁面中獲取是行不通的了,因為vue中是無法通過location.search()來獲取url問號之后的內容的。當然,這個問題也有解決方法,就是把獲取參數的腳本代碼注冊成全局方法就可以了。
第一步:創建utils.js文件,並保存到項目根目錄
1 export default{ 2 getUrlKey:function(name){ 3 return decodeURIComponent((new RegExp('[?|&]'+name+'='+'([^&;]+?)(&|#|;|$)').exec(location.href)||[,""])[1].replace(/\+/g,'%20'))||null; 4 } 5 }
第二步:在主js方法(main.js)中注冊全局方法
1 import utils from './utils' //獲取url參數 2 3 Vue.prototype.$utils=utils //注冊全局方法
第三步:vue文件中引用方法
1 let channel=this.$utils.getUrlKey("channel")