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

Vuex數(shù)據(jù)持久化的兩種方式:手動(dòng)存儲(chǔ)和vuex-persistedstate插件詳解

 更新時(shí)間:2024年08月31日 16:37:46   作者:一個(gè)好好的程序員  
這篇文章主要介紹了Vuex數(shù)據(jù)持久化的兩種方式:手動(dòng)存儲(chǔ)和vuex-persistedstate插件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

第一部分:手動(dòng)存儲(chǔ)

vuex的 store 中的數(shù)據(jù)是保存在運(yùn)行內(nèi)存中的,當(dāng)頁(yè)面刷新時(shí),頁(yè)面會(huì)重新加載 vue 實(shí)例,vuex里面的數(shù)據(jù)就會(huì)被重新賦值,這樣就會(huì)出現(xiàn)頁(yè)面刷新vuex中的數(shù)據(jù)丟失的問題。

如何解決瀏覽器刷新數(shù)據(jù)丟失問題呢?

方法一:全局監(jiān)聽

頁(yè)面刷新的時(shí)候?qū)?store 里 state 的值存到 sessionStorage 中,然后從sessionStorage 中獲取,再賦值給 store ,并移除 sessionStorage 中的數(shù)據(jù)。

在 app.vue 中添加以下代碼:

//在根組件.vue中添加如下代碼 app.vue
created () {
  window.addEventListener('beforeunload', () => {
    sessionStorage.setItem('list', JSON.stringify(this.$store.state))
   })
  try {
    sessionStorage.getItem('list') && this.$store.replaceState(Object.assign({}, this.$store.state, JSON.parse(sessionStorage.getItem('list'))))
   } catch (err) {
     console.log(err)
   }
   sessionStorage.removeItem('list')
  }

第二部分:利用vuex-persistedstate插件

vue2寫法

步驟:

第一步:運(yùn)行如下的命令,安裝持久化存儲(chǔ) vuex 中數(shù)據(jù)的第三方包:

npm i vuex-persistedstate

第二步:在 src/store/index.js 模塊中,導(dǎo)入并配置 vuex-persistedstate 包:

默認(rèn)存儲(chǔ)到localStorage

//vuex:store.js文件內(nèi)容如下
import Vue from 'vue'
import Vuex from 'vuex'
// 1. 導(dǎo)入包
import createPersistedState from 'vuex-persistedstate'

Vue.use(Vuex)

export default new Vuex.Store({
  // 2. 配置為 vuex 的插件
  plugins: [createPersistedState()],
  state: {
    token: ''
    ...
  },
})

想要存儲(chǔ)到sessionStorage,配置如下:

import createPersistedState from "vuex-persistedstate"
const store = new Vuex.Store({
  // ...
  plugins: [createPersistedState({
      storage: window.sessionStorage
  })]
})

vue3寫法

1)首先:我們需要安裝一個(gè)vuex的插件vuex-persistedstate來支持vuex的狀態(tài)持久化。

npm i vuex-persistedstate

2)然后:在src/store 文件夾下新建 modules 文件,在 modules 下新建 user.jscart.js

src/store/modules/user.js

3)繼續(xù):在 src/store/index.js 中導(dǎo)入 user cart 模塊。

import { createStore } from 'vuex'

import user from './modules/user'
import cart from './modules/cart'
import cart from './modules/category'

export default createStore({
  modules: {
    user,
    cart,
    category
  }
})

4)最后:使用vuex-persistedstate插件來進(jìn)行持久化

import { createStore } from 'vuex'
+import createPersistedstate from 'vuex-persistedstate'

import user from './modules/user'
import cart from './modules/cart'
import cart from './modules/category'

export default createStore({
  modules: {
    user,
    cart,
    category
  },
+  plugins: [
+    createPersistedstate({
+      key: 'erabbit-client-pc-store',
+      paths: ['user', 'cart'] //需要持久化的modules
+    })
+  ]
})

總結(jié)

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

相關(guān)文章

  • element-vue實(shí)現(xiàn)網(wǎng)頁(yè)鎖屏功能(示例代碼)

    element-vue實(shí)現(xiàn)網(wǎng)頁(yè)鎖屏功能(示例代碼)

    這篇文章主要介紹了element-vue實(shí)現(xiàn)網(wǎng)頁(yè)鎖屏功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-11-11
  • vue實(shí)現(xiàn)購(gòu)物車加減

    vue實(shí)現(xiàn)購(gòu)物車加減

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)購(gòu)物車加減,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • vue如何使用AIlabel標(biāo)注組件

    vue如何使用AIlabel標(biāo)注組件

    這篇文章主要介紹了vue如何使用AIlabel標(biāo)注組件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue相關(guān)配置文件詳解及多環(huán)境配置詳細(xì)步驟

    vue相關(guān)配置文件詳解及多環(huán)境配置詳細(xì)步驟

    這篇文章主要介紹了vue相關(guān)配置文件詳解及多環(huán)境配置的教程,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 前端框架Vue父子組件數(shù)據(jù)雙向綁定的實(shí)現(xiàn)

    前端框架Vue父子組件數(shù)據(jù)雙向綁定的實(shí)現(xiàn)

    Vue項(xiàng)目中經(jīng)常使用到組件之間的數(shù)值傳遞,實(shí)現(xiàn)的方法很多,但是原理上基本大同小異。這篇文章將給大家介紹Vue 父子組件數(shù)據(jù)單向綁定與Vue 父子組件數(shù)據(jù)雙向綁定的對(duì)比從而認(rèn)識(shí)雙向綁定
    2021-09-09
  • Vue中路由傳參的實(shí)用方式?分享

    Vue中路由傳參的實(shí)用方式?分享

    這篇文章主要為大家詳細(xì)介紹了VUE項(xiàng)目中路由之間的傳值方式,文中的示例代碼講解詳細(xì),涉及到的方法也都是開發(fā)時(shí)常用的,希望對(duì)大家有多幫助
    2023-06-06
  • Vue組件間的通信方式詳析

    Vue組件間的通信方式詳析

    本文介紹Vue組件間通信方式,Vue組件間通信一直是個(gè)重要的話題,雖然官方推出的Vuex狀態(tài)管理方案可以很好的解決組件之間的通信問題,但是在組件庫(kù)內(nèi)部使用Vuex往往會(huì)比較重,本文將系統(tǒng)的羅列出幾種不使用Vuex,比較實(shí)用的組件間的通信方式,希望能幫助到大家
    2022-09-09
  • Vue路由history模式解決404問題的幾種方法

    Vue路由history模式解決404問題的幾種方法

    這篇文章主要介紹了Vue路由history模式解決404問題的幾種方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • vue中的$含義及其用法詳解($xxx引用的位置)

    vue中的$含義及其用法詳解($xxx引用的位置)

    $是在vue中所有實(shí)例中都可用的一個(gè)簡(jiǎn)單約定,這樣做會(huì)避免和已被定義的數(shù)據(jù),方法,計(jì)算屬性產(chǎn)生沖突,下面這篇文章主要給大家介紹了關(guān)于vue中$含義及其用法的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • vue2?web多標(biāo)簽輸入框elinput是否當(dāng)前焦點(diǎn)詳解

    vue2?web多標(biāo)簽輸入框elinput是否當(dāng)前焦點(diǎn)詳解

    這篇文章主要介紹了vue2?web多標(biāo)簽輸入框elinput是否當(dāng)前焦點(diǎn)的相關(guān)資料,講解了如何在產(chǎn)品中實(shí)現(xiàn)用戶輸入文字后按下回車鍵生成標(biāo)簽并顯示在頁(yè)面上的功能,通過組件的使用和改造,解決了輸入不連續(xù)的問題,需要的朋友可以參考下
    2025-01-01

最新評(píng)論

饶平县| 化隆| 镇坪县| 长岛县| 梁平县| 靖边县| 崇义县| 嘉荫县| 宁明县| 铜梁县| 砚山县| 白沙| 彭泽县| 明溪县| 马龙县| 渝中区| 宜章县| 会宁县| 通城县| 革吉县| 临江市| 海口市| 新野县| 武冈市| 高清| 元江| 乳山市| 安义县| 东乡| 南部县| 霍州市| 定陶县| 额济纳旗| 吉木萨尔县| 汝州市| 利津县| 新化县| 辉县市| 东方市| 沁源县| 观塘区|