最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue路由傳參刷新后數(shù)據(jù)丟失問題及解決

 更新時間:2024年03月08日 10:20:28   作者:weixin_49696014  
這篇文章主要介紹了vue路由傳參刷新后數(shù)據(jù)丟失問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

vue路由傳參刷新后數(shù)據(jù)丟失

出現(xiàn)刷新后數(shù)據(jù)丟失的情況可分為:

  • 1、路由傳參;
  • 2、從vuex獲取參數(shù)

首先說一下:

1、路由傳參

路由傳參可分為query傳參和params傳參

(1)、query傳參,參數(shù)會在地址欄中顯示,如果你傳的是字符串,刷新后頁面的數(shù)據(jù)是不會丟失的,如果傳的是對象或者是數(shù)組,那么刷新后,頁面的數(shù)據(jù)就會丟失,此時解決的方法是,將復(fù)雜數(shù)據(jù)類型,傳的時候轉(zhuǎn)化成字符串,子組件接受的時候再轉(zhuǎn)化過來,這樣刷新后就不會丟失啦

(2)、params傳參,無論是你參數(shù)是字符串還是復(fù)雜數(shù)據(jù)類型,刷新后子組件的頁面數(shù)據(jù)都會丟失

解決辦法:

使用params中的路由匹配

使用方式:在router.js,即匹配路由規(guī)則的位置,加上占位符即可

{
  path: '/index/:num/:name',
  name: 'index',
  component: Index
}

params中的參數(shù)名稱需要和占位符的名稱一致即可

獲取參數(shù),還是和獲取params中參數(shù)一致:this.$route.params.name

這樣的話,參數(shù)就會出現(xiàn)在url中,格式為:url/num/name,這種方式將參數(shù)放在url上,刷新的時候才不會丟失數(shù)據(jù)。

綜上所述,自己的出的一個小結(jié)論:

如果不使用其他方法,只是路由傳參,要想刷新后數(shù)據(jù)不丟失,

你的參數(shù)就要出現(xiàn)再url地址中,雖然params傳遞的參數(shù)不出現(xiàn)在url地址,

但是要想解決params傳參數(shù)據(jù)刷新不丟失,還得把參數(shù)出現(xiàn)在url地址欄中

2、從vuex獲取參數(shù)

頁面刷新store.state中的數(shù)據(jù)消失是不可避免的,那么使用localStorage來避免這個問題。

發(fā)現(xiàn)問題的時候我就考慮到存數(shù)據(jù)在localStorage里,但是一個一個數(shù)據(jù)添加實在是太蠢了。

那么就需要一個全局的方法來,將store的數(shù)據(jù)存儲在localStorage里。

具體的方法也是百度的很好用,也很方便。

在App.vue中,created初始化生命周期中寫入以下方法

自己項目中使用的方法

//在頁面加載時讀取sessionStorage里的狀態(tài)信息
    if (sessionStorage.getItem('store')) {
      this.$store.replaceState(
        Object.assign(
          {},
          this.$store.state,
          JSON.parse(sessionStorage.getItem('store'))
        )
      )
    }
    //在頁面刷新時將vuex里的信息保存到sessionStorage里

    window.addEventListener('beforeunload', () => {
      sessionStorage.setItem('store', JSON.stringify(this.$store.state))
    })

作者的方法

//在頁面刷新時將vuex里的信息保存到localStorage里
window.addEventListener("beforeunload",()=>{
  localStorage.setItem("messageStore",JSON.stringify(this.$store.state))
})
 
//在頁面加載時讀取localStorage里的狀態(tài)信息
localStorage.getItem("messageStore") && this.$store.replaceState(Object.assign(this.$store.state,JSON.parse(localStorage.getItem("messageStore"))));

兩種方法基本一致

最后說一下,為什么vuex刷新后數(shù)據(jù)會丟失:

其實很簡單,因為store里的數(shù)據(jù)是保存在運行內(nèi)存中的,當頁面刷新時,頁面會重新加載vue實例,store里面的數(shù)據(jù)就會被重新賦值

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解Vue-cli中的靜態(tài)資源管理(src/assets和static/的區(qū)別)

    詳解Vue-cli中的靜態(tài)資源管理(src/assets和static/的區(qū)別)

    這篇文章主要介紹了Vue-cli中的靜態(tài)資源管理(src/assets和static/的區(qū)別,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • element?el-tree折疊收縮的實現(xiàn)示例

    element?el-tree折疊收縮的實現(xiàn)示例

    本文主要介紹了element?el-tree折疊收縮的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • 前端Vue學(xué)習(xí)之購物車項目實戰(zhàn)記錄

    前端Vue學(xué)習(xí)之購物車項目實戰(zhàn)記錄

    購物車是電商必備的功能,可以讓用戶一次性購買多個商品,下面這篇文章主要給大家介紹了關(guān)于前端Vue學(xué)習(xí)之購物車項目的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-07-07
  • vue+elementui實現(xiàn)拖住滑塊拼圖驗證

    vue+elementui實現(xiàn)拖住滑塊拼圖驗證

    這篇文章主要為大家詳細介紹了vue+elementui實現(xiàn)拖住滑塊拼圖驗證,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • VUE+element-ui文件上傳的示例代碼

    VUE+element-ui文件上傳的示例代碼

    圖片和文件上傳在很多項目中都可以使用的到,本文主要介紹了VUE+element-ui文件上傳的示例代碼,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 基于Vue的延遲加載插件vue-view-lazy

    基于Vue的延遲加載插件vue-view-lazy

    這篇文章主要介紹了基于Vue的延遲加載插件vue-view-lazy,可以使圖片或者其他資源進入可視區(qū)域后加載,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • vue-swiper的使用教程

    vue-swiper的使用教程

    swiper是我之前做前端頁面會用到的一個插件,我自己認為是非常好用的。這篇文章給大家介紹vue-swiper的使用教程,感興趣的朋友一起看看吧
    2018-08-08
  • 一文帶你搞懂Vue?Loader是如何工作的

    一文帶你搞懂Vue?Loader是如何工作的

    Vue?Loader?作為一個?webpack?的?Loader,扮演著將?.vue?文件轉(zhuǎn)化為瀏覽器可執(zhí)行代碼的角色,下面就跟隨小編一起深入了解Vue?Loader?的技術(shù)細節(jié)與工作機制吧
    2024-12-12
  • vue?codemirror實現(xiàn)在線代碼編譯器效果

    vue?codemirror實現(xiàn)在線代碼編譯器效果

    這篇文章主要介紹了vue-codemirror實現(xiàn)在線代碼編譯器?,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12
  • Vue3.0導(dǎo)出數(shù)據(jù)為自定義樣式Excel的詳細實例

    Vue3.0導(dǎo)出數(shù)據(jù)為自定義樣式Excel的詳細實例

    在許多的后臺系統(tǒng)中少不了導(dǎo)出Excel表格的功能,下面這篇文章主要給大家介紹了關(guān)于Vue3.0導(dǎo)出數(shù)據(jù)為自定義樣式Excel的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-06-06

最新評論

延安市| 章丘市| 上虞市| 白沙| 涞水县| 铅山县| 岳阳市| 宝兴县| 岚皋县| 民和| 巴马| 百色市| 张北县| 安康市| 封丘县| 大洼县| 宁蒗| 耿马| 合水县| 仙居县| 仙桃市| 威宁| 西丰县| 石门县| 彭阳县| 迁安市| 大荔县| 扎鲁特旗| 莱州市| 集贤县| 旬阳县| 山阳县| 策勒县| 嘉义县| 化州市| 肥城市| 岳阳县| 奎屯市| 容城县| 焉耆| 华坪县|