vuex持久化插件(vuex-persistedstate)

一、使用插件解决vuex数据刷新丢失

使用vuex的插件

在使用vuex-persistedstate 插件

这个插件其实也是使用本地缓存来储存store中的属性

  • 安装vuex-persistedstate插件

    npm install vuex-persistedstate --save
    
  • 在store中的index.js中引入

    import persistedState from 'vuex-persistedstate'
    let create_persistedstate = persistedState({ 
        key:'store',
        storege:window.loaclStorege
    })
    export default new Vuex.Store({
        // ...
        plugins: [create_persistedstate]
    })
    

    persistedState函数中的是一个对象

    对象中的属性:

    • key <String>:用于存储持久状态的密钥。默认为vuex
    • paths <Array>:任何路径的数组,以部分保留状态。如果未给出路径,则完整状态将保留。如果给定一个空数组,则不会保留任何状态。必须使用点表示法指定路径。如果使用模块,请包括模块名称。例如:“ auth.user”默认为undefined
    • reducer <Function>:将根据给定路径调用以减少状态持久化的函数。默认值包括这些值。
    • subscriber <Function>:一个用于设置突变订阅的函数。默认为store => handler => store.subscribe(handler)
    • storage <Object>:代替(或结合)getStatesetState。默认为localStorage。
    • getState <Function>:将被调用以恢复先前持久状态的功能。默认使用storage
    • setState <Function>:将被调用以保持给定状态的函数。默认使用storage
    • filter <Function>:一个将被调用以过滤setState最终将在存储中触发的任何突变的函数。默认为() => true
    • overwrite <Boolean>:补液时,是否getState直接用输出结果覆盖现有状态,而不是用合并两个对象deepmerge。默认为false
    • arrayMerger <Function>:补充状态时合并数组的功能。默认为function (store, saved) { return saved }(保存状态替换提供状态)。
    • rehydrated <Function>:补液完成后将被调用的函数。当您使用Nuxt.js时,该功能非常有用,持久化状态的恢复是异步发生的。默认为store => {}
    • fetchBeforeUse <Boolean>:一个布尔值,指示在使用插件之前是否应从存储中获取状态。默认为false
    • assertStorage <Function>:确保插件可用的可重写功能,会在插件初始化时触发。默认情况下,是在给定的Storage实例上执行Write-Delete操作。请注意,默认行为可能会引发错误(如DOMException: QuotaExceededError)。
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vuex持久化插件vuex-persistedstate是一个用于在Vue.js应用中实现Vuex状态的持久化插件。它可以将Vuex中的某些状态保存在本地存储中,以便在页面刷新或重新加载后,仍然可以保持这些状态的值。 在使用vuex-persistedstate插件时,我们首先需要通过npm安装它,可以使用以下命令进行安装: npm install vuex-persistedstate --save 接下来,在我们的Vue应用中,我们需要在Vuexstore文件中引入vuex-persistedstate插件,并将其添加到Vuex的plugins选项中。以一个具体的例子来说明,如果我们想要给tab模块的state中的menu做持久化,我们可以使用如下代码配置我们的store: import Vue from 'vue' import Vuex from 'vuex' import tab from './tab.js' import createPersistedState from "vuex-persistedstate" Vue.use(Vuex) export default new Vuex.Store({ modules: { tab }, plugins: [ createPersistedState({ paths: ['tab.menu'] }) ] }) 在上述代码中,我们引入了createPersistedState方法并将其作为插件传递给Vuex的plugins选项。通过传递一个对象给createPersistedState方法的paths选项,我们可以指定需要持久化的状态的路径。在这个例子中,我们指定了tab模块下的menu状态需要进行持久化。 这样,当我们在应用中对tab模块的menu状态进行修改后,这个修改将会被自动保存在本地存储中。当我们刷新或重新加载页面时,这个状态的值将会被还原,以便我们可以继续使用之前保存的值。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [vuex持久化存储插件vuex-persistedstate](https://blog.csdn.net/weixin_51382988/article/details/128584817)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

要爆炸的臭臭君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值