Vue路由傳參頁面刷新后參數(shù)丟失原因和解決辦法
vue路由傳參方法
在編寫vue項目時,時常會使用路由在不同頁面中傳遞參數(shù),常見使用方式如下:
this.$router.push({ path: "/test", query: { a: 1, b: 2 } })
這樣我們就傳遞了兩個參數(shù),在 /test 頁面 就可以接收這兩個參數(shù)
let a = this.$route.query.a; let b = this.$route.query.b;
可以看到瀏覽器進行了url參數(shù)拼接傳參,有點像get請求的意思
如果不想顯示參數(shù)拼接在url中,可以使用parmars傳參,同時path失效,需要用name指定路由,前提vueRouter中有name對應的路由,才能匹配對應的路徑
this.$router.push({ name: "test", params: { a: 1, b: 2 } })
接收參數(shù)方式 與query方式類似
let a = this.$route.parmars.a; let b = this.$route.parmars.b;
看起來有點像post請求
以上看起來一切正常,但是一旦傳遞的參數(shù)中包含對象之后,問題就出現(xiàn)了
原因分析:
參數(shù)傳遞變?yōu)榱薣object object] ,這個我們非常熟悉,是對象被強制轉化為字符串的結果
恍然大悟!原來vue路由傳值會把參數(shù)都轉換為字符串進行拼接,相當于String(參數(shù))
解決方案:
解決方案很簡單,就是使用JSON
傳遞參數(shù)時將參數(shù)轉化為JSON字符串
this.$router.push({ path: "/test", query: { a: JSON.stringify({test : 'test}), b: 2 } })
接收時再轉化為對象
let a = JSON.parse(this.$route.query.a); let b = this.$routr.query.b;
完美解決
總結
到此這篇關于Vue路由傳參頁面刷新后參數(shù)丟失原因和解決辦法的文章就介紹到這了,更多相關Vue路由傳參頁面刷新參數(shù)丟失內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
elementUI select組件默認選中效果實現(xiàn)的方法
這篇文章主要介紹了elementUI select組件默認選中效果實現(xiàn)的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-03-03Vue聲明式導航與編程式導航及導航守衛(wèi)和axios攔截器全面詳細講解
這篇文章主要介紹了Vue聲明式導航與編程式導航及導航守衛(wèi)和axios攔截器,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧2023-01-01element-ui?tree?異步樹實現(xiàn)勾選自動展開、指定展開、指定勾選功能
這篇文章主要介紹了element-ui?tree?異步樹實現(xiàn)勾選自動展開、指定展開、指定勾選,項目中用到了vue的element-ui框架,用到了el-tree組件,由于數(shù)據量很大,使用了數(shù)據懶加載模式,即異步樹,需要的朋友可以參考下2022-08-08