欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vuex結合session存儲數(shù)據(jù)解決頁面刷新數(shù)據(jù)丟失問題

 更新時間:2021年09月09日 10:32:04   作者:咻er  
在項目中表單篩選項里,選擇完之后刷新頁面數(shù)據(jù)就變了,沒有保留在自己選擇的選項上。本文使用session存儲數(shù)據(jù),具有一定的參考價值,感興趣的可以了解一下

前言

在項目中表單篩選項里,選擇完之后刷新頁面數(shù)據(jù)就變了,沒有保留在自己選擇的選項上。
在項目中是使用vuex保存數(shù)據(jù),但是網(wǎng)頁刷新后,store中保存的數(shù)據(jù)丟失了。

提示:以下是本篇文章正文內(nèi)容,下面案例可供參考

一、原因:

vuex作為全局的數(shù)據(jù)狀態(tài)管理機制,store中的數(shù)據(jù)是保存在運行內(nèi)存中,當頁面刷新時,頁面會重新加載vue實例,store里邊的數(shù)據(jù)就會被重新賦值變成初始化狀態(tài)。

二、解決思路:

將vuex與本地存儲結合使用,頁面刷新數(shù)據(jù)不會丟失

1.本地存儲方法:

1、localStorage:永久式存儲,關閉頁面或瀏覽器之后localStorage存儲的數(shù)據(jù)不會消失。除非主動刪除數(shù)據(jù),否則永遠不會消失。
以Chrome瀏覽器為例,數(shù)據(jù)放在C:\Users\你的計算機名\AppData\Local\Google\Chrome\User Data\Default\Local Storage\leveldb
2、sessionStorage:僅在當前會話下有效,關閉當前頁面或瀏覽器數(shù)據(jù)就會被銷毀。sessionStorage實在同源的窗口中始終存在是數(shù)據(jù),頁面刷新還在,只要關閉當前頁面就銷毀了。
3、cookie:如果不在瀏覽器中設置過期時間,cookie被保存在內(nèi)存中,生命周期隨瀏覽器的關閉而結束,這種cookie簡稱會話cookie。如果在瀏覽器中設置了cookie的過期時間,cookie被保存在硬盤中,關閉瀏覽器后,cookie數(shù)據(jù)仍然存在,直到過期時間結束才消失。。cookie存放數(shù)據(jù)大小為4kb左右,一般不能超過20個,不能存儲大數(shù)據(jù)。

拓展:cookie適用場景
(1)判斷用戶是否登陸過網(wǎng)站,以便下次登錄時能夠?qū)崿F(xiàn)自動登錄(或者記住密碼)。如果我們刪除cookie,則每次登錄必須從新填寫登錄的相關信息。
(2)保存上次登錄的時間等信息。
(3)保存上次查看的頁面(保存訪問過的路由信息)
(4)瀏覽器行為跟蹤(如跟蹤分析用戶行為等)
(5)個性化設置(如用戶自定義設置,主題等)

2.實現(xiàn)步驟:

由于vue是單頁面應用,操作都是在一個頁面完成,而且此項目只在當前打開項目中使用,所以用sessionStorage比較合適

  • 將數(shù)據(jù)保存在state中,state數(shù)據(jù)通過mutation方法進行修改,mutation修改state的時候同時將數(shù)據(jù)保存在sessionStorage中。
  • 在項目打開時,在App.vue中初始化數(shù)據(jù),如果本地存儲有數(shù)據(jù),那么就調(diào)用actions中的方法給state賦值。
  • 在表單項進行選擇時,同時修改state中的數(shù)據(jù)。
//store/selectData.js
const state = {//state中存放數(shù)據(jù)
  dataList: {
    exchangeIdSum: null,
  }
}
const mutations = {
  setExchangeIdSum(state, data) {//將選中的數(shù)據(jù)重新賦值,并保存到sessionStorage中
    state.dataList.exchangeIdSum = data
    sessionStorage.setItem('dataList',JSON.stringify(state.dataList))
  }
  setDataList(state, data) {
    state.dataList = JSON.parse(JSON.stringify(data))
  }
}
const actions = {
  resetDataList: ({commit}, list) =>{
    setTimeout(() => {
      commit('setDataList', list)
    }, 2000);
  }
}
export default {
  state,
  mutations,
  actions,
}

//表單篩選頁面中操作
methods: {
  exchangeChange(val) {//下拉框選擇時修改state中數(shù)據(jù)
    this.$store.commit('selectData/setExchangeIdSum', val)
  },
}
//App.vue中
created(){//頁面一進入判斷sessionStorage中是否有數(shù)據(jù)
  sessionStorage.getItem('dataList')?
  this.$store.dispatch('selectData/resetDataList', JSON.parse(sessionStorage.getItem('dataList'))):{}
}

3.優(yōu)化:

由于之前修改state數(shù)據(jù)時,mutation每次修改時都要修改sessionStorage,但如果修改的state數(shù)據(jù)很多,那每次都會修改sessionStorage,此操作略顯麻煩

在這里插入圖片描述

解決:
① 可以將數(shù)據(jù)直接存到sessionStorage中
② vue在每次刷新時頁面都會丟失,可以在頁面刷新前將數(shù)據(jù)存放在sessionStorage中,beforeunload事件可以在頁面刷新前觸發(fā)

到此這篇關于vuex結合session存儲數(shù)據(jù)解決頁面刷新數(shù)據(jù)丟失問題的文章就介紹到這了,更多相關vuex session存儲數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Vue的路由及路由鉤子函數(shù)的實現(xiàn)

    Vue的路由及路由鉤子函數(shù)的實現(xiàn)

    這篇文章主要介紹了Vue的路由及路由鉤子函數(shù)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • 一文詳解Vue3中的setup函數(shù)的用法和原理

    一文詳解Vue3中的setup函數(shù)的用法和原理

    在 Vue3 中,setup 函數(shù)是一個新引入的概念,它代替了之前版本中的 data、computed、methods 等選項,用于設置組件的初始狀態(tài)和邏輯,本文將主要介紹Setup的基本用法和少量原理
    2024-02-02
  • vue vuex vue-rouert后臺項目——權限路由(適合初學)

    vue vuex vue-rouert后臺項目——權限路由(適合初學)

    這篇文章主要介紹了vue vuex vue-rouert后臺項目——權限路由,通過本文可以很清除的捋清楚vue+vuex+vue-router的關系,本版本非常簡單,適合初學者,需要的朋友可以參考下
    2017-12-12
  • Vue表單及表單綁定方法

    Vue表單及表單綁定方法

    今天小編就為大家分享一篇Vue表單及表單綁定方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • vue中阻止click事件冒泡,防止觸發(fā)另一個事件的方法

    vue中阻止click事件冒泡,防止觸發(fā)另一個事件的方法

    下面小編就為大家分享一篇vue中阻止click事件冒泡,防止觸發(fā)另一個事件的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • vue watch監(jiān)聽對象及對應值的變化詳解

    vue watch監(jiān)聽對象及對應值的變化詳解

    下面小編就為大家分享一篇vue watch監(jiān)聽對象及對應值的變化詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • Vue?Router路由hash模式與history模式詳細介紹

    Vue?Router路由hash模式與history模式詳細介紹

    Vue?Router是Vue.js官方的路由管理器。它和Vue.js的核心深度集成,讓構建單頁面應用變得易如反掌。路由實際上就是可以理解為指向,就是我在頁面上點擊一個按鈕需要跳轉(zhuǎn)到對應的頁面,這就是路由跳轉(zhuǎn)
    2022-08-08
  • vue使用mui遇到的坑及解決

    vue使用mui遇到的坑及解決

    這篇文章主要介紹了vue使用mui遇到的坑及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Vue + Elementui實現(xiàn)多標簽頁共存的方法

    Vue + Elementui實現(xiàn)多標簽頁共存的方法

    這篇文章主要介紹了Vue + Elementui實現(xiàn)多標簽頁共存的方法,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-06-06
  • Vue實現(xiàn)計算器計算效果

    Vue實現(xiàn)計算器計算效果

    這篇文章主要為大家詳細介紹了Vue實現(xiàn)計算器計算效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08

最新評論