色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

Vue router傳遞參數并解決刷新頁面參數丟失問題

瀏覽:103日期:2022-10-22 08:06:23

Vue Router 傳參方式:

1. this.$router.push({ name: ’模塊名稱’, params: { // 各參數 } })

router.js:

export default new Router({ routes: [ { path: ’/paramsPassingByRouter’, component: ParamsPassingByRouter, children: [ { path: ’paramsMode’, name: ’paramsMode’, component: ParamsMode } ] } ]})

ParamsPassingByRouter.vue:

<!-- html --><button @click='paramsMode(testData)'>params傳參</button><!-- js --><script>export default { data () { return { testData: { id: ’20180101’, name: ’張三’, aka: ’z3’, age: ’18’ } } }, methods: { paramsMode (data) { this.$router.push({ name: ’paramsMode’, params: data }) } }}</script>

ParamsMode.vue:

<!-- html --><div class='params-mode'>{{ testData }}</div><!-- js --><script>export default { data () { return { testData: {} } }, created () { this.testData = this.$route.params }}</script>

效果:url:http://localhost:8081/#/paramsPassingByRouter/paramsMode頁面顯示:{'id':'20180101','name':'張三','aka':'z3','age':'18'}

但是刷新頁面后,數據會丟失,顯示:{}。

2. this.$router.push({ name: ’模塊名稱’, query: { // 各參數 } })

router.js:

export default new Router({ routes: [ { path: ’/paramsPassingByRouter’, component: ParamsPassingByRouter, children: [ { path: ’queryMode’, name: ’queryMode’, component: QueryMode } ] } ]})

ParamsPassingByRouter.vue:

<!-- html --><button @click='queryMode(testData)'>query傳參</button><!-- js --><script>export default { data () { return { testData: { id: ’20180101’, name: ’張三’, aka: ’z3’, age: ’18’ } } }, methods: { queryMode (data) { this.$router.push({ name: ’paramsMode’, query: data }) } }}</script>

QueryMode.vue:

<!-- html --><div class='query-mode'>{{ testData }}</div><!-- js --><script>export default { data () { return { testData: {} } }, created () { this.testData = this.$route.query }}</script>

效果:url:http://localhost:8081/#/paramsPassingByRouter/queryMode?id=20180101&name=%E5%BC%A0%E4%B8%89&aka=z3&age=18頁面顯示:{'id':'20180101','name':'張三','aka':'z3','age':'18'}

刷新頁面后,數據不會丟失。

解決刷新頁面數據丟失的方案:

使用 this.$router.push({ name: ’模塊名稱’, query: { // 各參數 } }) 方式傳參。

缺點:參數值都拼接在 url 上,url 會很長,同時都可被看到。

this.$router.push({ name: ’模塊名稱’, params: { // 各參數 } }) 路由文件設置的時候把參數拼到 url 里。

url:http://localhost:8081/#/paramsPassingByRouter/paramsMode/20180101/%E5%BC%A0%E4%B8%89/z3/18缺點:同上。

1 和 2 結合使用:this.$router.push({ name: ’模塊名稱’, params: { // 各參數 }, query: { // 各參數 } })。

老老實實的用 localStorage 存儲。

url: http://localhost:8081/#/paramsPassingByRouter/paramsMode/z3可以與 params 和 query 方式配合使用,可以暴露的參數顯示在 url 上,同時刷新參數也不會丟失。銷毀頁面的時候把 localStorage 存儲的內容清除。

// router.js{ path: ’paramsMode/:aka’, name: ’paramsMode’, component: ParamsMode}<!-- ParamsMode.vue 修改 --><script>export default { data () { return { testData: {} } }, created () { const tempData = localStorage.getItem(’tempData’) if (tempData) { this.testData = JSON.parse(tempData) } else { this.testData = this.$route.params localStorage.setItem(’tempData’, JSON.stringify(this.$route.params)) } }, beforeDestroy () { localStorage.removeItem(’tempData’) }}</script>

到此這篇關于Vue router傳遞參數并解決刷新頁面參數丟失問題的文章就介紹到這了,更多相關Vue router傳遞參數丟失內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Vue
相關文章:
主站蜘蛛池模板: 黄a一级| 萌白酱香蕉白丝护士服喷浆 | 在线观看国产一区二区三区 | 久久中文字幕久久久久91 | 国内精品久久久久不卡 | 亚洲三级a | 欧美成在线 | 最近日本免费观看视频 | 91精选视频 | 精品国产免费第一区二区三区日韩 | 国产精品久久久久久久久久直 | 精品一区二区三区视频在线观看免 | 国产大臿蕉香蕉大视频女 | 国产丝袜不卡一区二区 | 欧美视频一区二区三区 | a亚洲天堂 | 伊人情人综合网 | 日本a级片免费看 | 久久色婷婷 | 精品国产一区二区三区免费看 | 一级毛片真人免费播放视频 | mm在线视频免费看 | 香蕉在线观看999 | 肥婆毛片| 日本www在线视频 | 欧美精品综合一区二区三区 | 亚洲国产资源 | 又黄又湿又爽吸乳视频 | 亚洲欧美久久精品1区2区 | 国产性tv国产精品 | 日产一区两区三区四区 | 欧美一区二区三区视频在线 | 成人国产精品免费软件 | 亚洲视频精选 | 高清欧美不卡一区二区三区 | 日韩欧美亚洲每的更新在线 | 国产首页精品 | 国产成人女人在线视频观看 | 九九亚洲| 在线观看自拍视频 | 久草视频大全 |