Vuex的插件vuex-persistedstate数据持久化存储

这篇具有很好参考价值的文章主要介绍了Vuex的插件vuex-persistedstate数据持久化存储。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、安装插件

yarn add vuex-persistedstate
// 或
npm install --save vuex-persistedstate

二、使用方法

sessionStorage缓存上面state的数据,key名为store文章来源地址https://www.toymoban.com/news/detail-755115.html

import Vue from 'vue'
import Vuex from 'vuex'
// 引入插件
import createPersistedState from "vuex-persistedstate";

Vue.use(Vuex)

const state = {};
const mutations = {};
const actions = {};

const store = new Vuex.Store({
	state,
	mutations,
	actions,
    /* vuex数据持久化配置 */
	plugins: [
		createPersistedState({
            // 存储方式:localStorage、sessionStorage、cookies  默认: localStorage
			storage: window.sessionStorage,
            // 存储的 key 的key值
			key: "store",
			render(state) {
                // 要存储的数据:本项目采用es6扩展运算符的方式存储了state中所有的数据
				return { ...state };
			}
		})
	]
});

export default store;

三、缓存State下的部分数据

import Vue from 'vue'
import Vuex from 'vuex'
// 引入插件
import createPersistedState from "vuex-persistedstate";

Vue.use(Vuex)

const state = () => {
    return {
        token: '',
        uid: ''
    }
}



const store = new Vuex.Store({
    // ...
    plugins: [createPersistedState({
        storage: window.sessionStorage,
        reducer(val) {  // val就是上面的state
            return {
                // 只储存state中的token,而不会缓存uid
                token: val.token
            }
        }
    })]
})

四、缓存Vuex多个模块下的指定某个模块的state,通过修改path配置来实现

/* user-module */
export const user = {
    state: {
        token: '',
        role: ''
    }
}
/* profile-module */
export const profile = {
    state: {
        name: '',
        company: ''
    }
}
/* modules目录下的index.js */
import user from './user'
import profile from './profile'
export default {
    user,
    profile
}
/* store.js */
import modules from './modules'
let store = new Vuex.Store({
    modules,
    plugins: [
        createPersistedState({
            key: 'zdao',
            paths: ['user'] // 这里便只会缓存user下的state值
        })
    ]
})

到了这里,关于Vuex的插件vuex-persistedstate数据持久化存储的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uniapp中使用vuex并持久化

    目录 文章目录 准备 一、插件实现 1.安装插件  2.index.js配置: 3.获取持久化数据(比如登录页): 4.使用state(比如个人主页): 二、本地存储实现 总结 根目录下创建store文件夹,内部创建index.js 地址:vuex-persistedstate - npm 代码如下(示例): 插件的api说明: key: 存储持久

    2024年02月09日
    浏览(55)
  • Vue(Vuex插件)

    专门在Vue中实现 集中式状态数据管理的一个Vue插件 ,对Vue的应用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方式,且适用于任意组件间通信。 https://github.com/vuejs/vuex https://github.com/vuejs/vuex 当通过全局事件总线或者消息订阅与发布传递信息时候,

    2024年02月06日
    浏览(35)
  • Pinia 数据持久化储存(pinia-plugin-persistedstate)

    插件官网地址: https://prazdevs.github.io/pinia-plugin-persistedstate/guide/config.html 这里对插件的安装就不多赘述了,放两张官网的截图 使用命令:npm i pinia-plugin-persistedstate (1)将store的state中的全部数据进行缓存,直接在state同级下面添加persist对象 此时,默认将数据存放在浏览器的

    2024年02月01日
    浏览(38)
  • 如何在 uniapp 里面使用 pinia 数据持久化 (pinia-plugin-persistedstate)

    想要在 uniapp 里面使用 pinia-plugin-persistedstate 会遇到的问题就是 uniapp里面没有浏览器里面的 sessionStorage localStorage 这些 api 。 我们只需要替换掉 pinia-plugin-persistedstate 默认的储存 api 就可以了。使用 createPersistedState 重新创建一个实例, 把里面的 storage 的参数修改为对应的 uniapp

    2024年02月08日
    浏览(33)
  • 【pinia持久化存储】使用pinia和pinia-plugin-persistedstate依赖进行数据的持久化存储

    使用pinia和pinia-plugin-persistedstate依赖进行数据的持久化存储。 存储方式 : localStorage sessionStorage pinia-plugin-persistedstate 中文官网 pinia 中文官网 安装和使用 pinia ,请参考使用pinia文章。 安装 pinia-plugin-persistedstate : 使用前先将 pinia-plugin-persistedstate添加到pinia实例上。 在添加的时

    2023年04月17日
    浏览(47)
  • Vuex④(多组件共享数据、Vuex模块化+namespace)

    我们现在想实现这种情况: Person组件的总人数就是Person中列表的长度 br上的是Count组件,br下的是Person组件。 我们通过vuex中的state实现一些数据的多组件共享: Person.vue 注意点: 这里使用了id生成类nanoid,如果要使用先安装包 使用方法: Count.vue store 我们查看我们前面的代码

    2023年04月16日
    浏览(37)
  • Vuex实现数据共享

    目录 一:index.js的创建 二:index.js的引入 三:Count.vue 四:App.vue的使用 五:mapstate等的使用 五:多组件数据共享(模块化编程) vc通过dispatch联系actions,actions通过commit联系mutations。 Mutations可以通过Mutate修改State。 Vuex小案例 src/store/index.js的创建 App.vue和main.js和上面一样 ind

    2024年02月04日
    浏览(31)
  • vuex缓存接口返回的数据,只在首次使用调用接口,之后使用vuex中的缓存值

    场景:同一个接口在多个页面调用 问题:重复访问,导致对服务器的重复请求,降低用户体验。 解决:使用vuex的异步处理,第一次访问时将数据缓存,下次访问直接从缓冲中获取,提高访问速度 注意:刷新页面时,会把当前页面占用的缓存释放掉,再重新加载新的缓存,如

    2024年02月12日
    浏览(47)
  • vuex怎么防止数据刷新丢失?

    在Vue.js应用程序中,Vuex是一个用于管理应用程序状态的状态管理库。默认情况下,Vuex的状态存储在内存中,并且在页面刷新时会丢失。 为了防止数据刷新丢失,你可以考虑以下几种方法: 这些方法可以帮助你防止Vuex数据刷新丢失。根据你的应用场景和需求,选择最适合你

    2024年03月13日
    浏览(38)
  • 从Vuex中获取数据,数据不更新

    问题: Vuex中的数据修改之后,子组件的数据不会实时更新,需要切换到其他页面,在切换回来数据才会更新,渲染页面 子组件代码: 为什么会出现这种情况呢? 原因是因为在在获取Vuex数据时,是在页面加载前进行获取,在加载完毕之后,Vuex的数据修改后,你子组件的页面

    2024年02月13日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包