91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Vue怎么解決router傳遞params參數在頁面刷新時數據丟失問題

發布時間:2022-03-07 15:05:44 來源:億速云 閱讀:1717 作者:iii 欄目:web開發

本文小編為大家詳細介紹“Vue怎么解決router傳遞params參數在頁面刷新時數據丟失問題”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Vue怎么解決router傳遞params參數在頁面刷新時數據丟失問題”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

Vue 項目:如何解決 router 傳遞 params 參數,在頁面刷新時數據丟失

情況是這樣,通常我們會從一個 A 頁面跳轉到另一個 B 頁面,如果這兩個頁面存在數據交互的話,就會有可能發生數據丟失的情況:

就比如我們 A 頁面有一個按鈕,點擊按鈕將數據傳遞給其他頁面:

那接下來我們就可以新建一個 A.vue 文件代碼如下:

<template>

  <button @click="toB">toB</button>

</template>

<script>

export default {

  name: 'A',

  data() {

    row: {

      name: 'A 頁面'

    },

  },

  methods: {

    toB() {

      this.$router.push({

        name: 'B',

        params: {

          row:  this.row

        }

      })

    }

  }

}

</script>

接著就是 B 頁面接受 A 頁面的數據:

我們可以新建一個 B.vue 頁面:

<template>

  <div>{{row.name}}</div>

</template>

<script>

export default {

  name: 'B',

  props: ['row'],

}

</script>

這里之所以可以使用 props 屬性來接收 row,是因為我們在路由配置文件通過設置 props 為 true 來開啟了路由參數解耦:

{

  path: '/B',

  name: 'B',

  props: true,

  component: import('B.vue')

}

但是如果用戶突然刷新了 B 頁面數據會丟失,我們一般如何解決呢?大概有三種方法:

第一種:使用 query 查詢的方式傳遞參數: 在 A 頁面傳遞數據:

this.$router.push({

  name: 'B',

  query: {

    row: JSON.stringify(this.row)

  }

})

B 頁面接受數據:

<template>

  <div>{{JSON.parse($route.query.row).name}}</div>

</template>

第二種:還是使用 params 傳遞參數,但是得結合 localstroage 緩存

比如 A 頁面:

this.$router.push({

  name: 'B',

  params: {

    row: this.row

  }

})

B 頁面接受數據: 在 created 生命周期時先緩存數據,在頁面銷毀時刪除緩存

export default {

  name: 'B',

  data() {

    return {

      row: null

    }

  },

  created() {

    let rowData = localStorage.getItem('rowData')

    if(rowData) {

      this.row = this.$route.params.row

      localStorage.setItem('rowData', JSON.stringify(this.$route.params.row))

    }

  },

  beforeDestory() {

    localStorage.removeItem('rowData')

  }

}

讀到這里,這篇“Vue怎么解決router傳遞params參數在頁面刷新時數據丟失問題”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

汝州市| 英山县| 安康市| 志丹县| 兴文县| 清水河县| 龙山县| 福州市| 西峡县| 米脂县| 张家界市| 屯昌县| 江达县| 五河县| 广元市| 隆尧县| 乐山市| 靖宇县| 谢通门县| 讷河市| 祁门县| 营山县| 长武县| 台北市| 景德镇市| 花莲市| 绥江县| 南陵县| 岳阳市| 苍山县| 邢台县| 海伦市| 刚察县| 米易县| 二连浩特市| 出国| 农安县| 阿鲁科尔沁旗| 乐东| 沂源县| 新平|