首页 > 其他 > 详细

Vue 数据持久化

时间:2021-03-10 21:30:29      阅读:30      评论:0      收藏:0      [点我收藏+]

来自:https://www.cnblogs.com/zyueer/p/11346098.html

 

方法一:使用 localStorage 存储数据

window.localStorage.setItem(key,value)

 

方法二:使用 vuex-persistedstate插件

vuex 存在一个痛点,就是刷新以后vuex里面存储的state就会被浏览器释放掉(state都是存储在内存中的)。

办法:

通过vuex-persistedstate插件,实现将数据存储到本地。

1.实现

npm install vuex-persistedstate  --save
技术分享图片
import createPersistedState from ‘vuex-persistedstate‘
export default new Vuex.Store({
    state:{},
    getters:{},
    actions:{},
    mutations:{},
    modules:{},
    plugins: [createPersistedState()]  //加上这个就可以了 //里面设置需要缓存的内容
})

API: https://www.npmjs.com/package/vuex-persistedstate
技术分享图片

 

 2. 举个例子:如果你不小心关掉了一个标签,他们可以重新打开并回到之前页面的状态。

 

自定义存储

如果在本地存储中存储Vuex存储的状态并不理想。人们可以轻松地实现功能使用cookie

技术分享图片
import { Store } from ‘vuex‘
import createPersistedState from ‘vuex-persistedstate‘
import * as Cookies from ‘js-cookie‘

const store = new Store({
  // ...
  plugins: [
    createPersistedState({
      storage: {
        getItem: key => Cookies.get(key),
        setItem: (key, value) => Cookies.set(key, value, { expires: 3, secure: true }),
        removeItem: key => Cookies.remove(key)
      }
    })
  ]
})

// 用sessionStorage替换localStorage
// createPersistedState({ storage: window.sessionStorage })
技术分享图片

 

方法三: 使用vue-cookie插件

cookie 可以设置过期时间

1.安装

npm install vue-cookie --save

2.在 store中存储起来

技术分享图片
import Vue from ‘vue‘;
import Vuex from ‘vuex‘;

Vue.use(Vuex)
var VueCookie = require(‘vue-cookie‘);

export default new Vuex.Store({
  state: {
    token: VueCookie.get(‘token‘)
  },
  mutations: {
    saveToken(state, token) {
      state.token = token;
      // 设置存储
      VueCookie.set(‘token‘, token, { expires: ‘30s‘ });
    }
  },
  actions: {

  }
})
技术分享图片

3.在登录页面 设置存储起来

技术分享图片
import { mapMutations } from ‘vuex‘;
export default {
  methods: {
    login() {
      this.saveToken(‘123‘)
    },
    ...mapMutations([‘saveToken‘])
  }
};
技术分享图片

Vue 数据持久化

原文:https://www.cnblogs.com/setbug/p/14514053.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!