午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

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

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

瀏覽:170日期: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久热| 亚洲色图图片 | 色视频在线播放 | 日本精品三区 | 色婷婷激情五月 | 美日韩成人 | 日韩视频在线一区二区 | 香蕉国产在线 | wwww在线观看 | 精品久久久久久久久久久aⅴ | 精品久久免费视频 | 欧美成人午夜精品免费 | 国内精品久| 欧美日韩一级大片 | 亚洲精品欧美精品 | 免费成人精品 | 国产精品久久久久久亚洲毛片 | 国产黄色精品网站 | 加勒比久久综合 | 久久视频一区二区 | 欧美精品影院 | 亚洲女优在线观看 | 国产免费av一区二区 | 超碰精品在线观看 | 国产一区二区成人 | 欧美成人三级在线 | 久久美女免费视频 | 国产激情小视频 | 国产一区2区 | 亚洲欧美国产毛片在线 | 青青草免费在线视频观看 | 黄色片免费观看 | 欧美日韩影视 |