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

03-22 2434阅读 0评论

一、安装插件

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

二、使用方法

用sessionStorage缓存上面state的数据,key名为store

Vuex的插件vuex-persistedstate数据持久化存储 第1张
(图片来源网络,侵删)
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数据持久化存储 第2张
(图片来源网络,侵删)

免责声明
1、本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明。
2、本网站转载文章仅为传播更多信息之目的,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所
提供信息的准确性及可靠性,但不保证信息的正确性和完整性,且不对因信息的不正确或遗漏导致的任何
损失或损害承担责任。
3、任何透过本网站网页而链接及得到的资讯、产品及服务,本网站概不负责,亦不负任何法律责任。
4、本网站所刊发、转载的文章,其版权均归原作者所有,如其他媒体、网站或个人从本网下载使用,请在
转载有关文章时务必尊重该文章的著作权,保留本网注明的“稿件来源”,并白负版权等法律责任。

手机扫描二维码访问

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,2434人围观)

还没有评论,来说两句吧...

目录[+]