vue中如何不通過路由直接獲取url中的參數


前言:為什么要不通過路由直接獲取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")


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM