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

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

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

瀏覽:85日期: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
相關文章:
主站蜘蛛池模板: 欧美在线视频精品 | 欧美成人爽毛片在线视频 | 免费国产成人午夜在线观看 | 在线人成精品免费视频 | 国产精品一级毛片不收费 | 看成年女人免费午夜视频 | 最近最新中文字幕免费的一页 | 中国内地毛片免费高清 | 国产成人综合网在线观看 | 一区自拍| 久久精品国产99久久99久久久 | 在线中文 | 亚洲人成影院在线高清 | 在线观看一区二区三区四区 | 亚洲成av人片在线观看 | 欧美成人性做爰网站免费 | 国产精品美女久久久久网站 | 午夜影院免费体验 | 狼人青草久久网尹人 | 99精品欧美一区二区三区美图 | 男女牲高爱潮免费视频男女 | 做爰www免费看视频 1024色淫免费视频 | 毛片免费观看日本中文 | 在线播放免费一级毛片欧美 | 日韩精品亚洲人成在线观看 | 日韩美一区二区三区 | 国产一级大片 | 亚洲精品久久99久久 | 亚洲国产高清视频 | 国产成人一区二区三区在线播放 | 国产高清视频在线观看 | 亚洲第四页 | 成年人午夜免费视频 | 免费欧美黄色 | 日韩欧美亚洲每的更新在线 | 国产成人免费在线视频 | 日本手机在线视频 | 一及 片日本 | 老司机午夜性生免费福利 | 成人男女视频 | 男人躁女人躁的好爽免费视频 |