index.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import Vue from 'vue'
  2. import Vuex from 'vuex'
  3. import createPersistedState from 'vuex-persistedstate'
  4. Vue.use(Vuex)
  5. const store = new Vuex.Store({
  6. plugins: [
  7. // 可以有多个持久化实例
  8. createPersistedState({
  9. key: 'app_config_data', // 状态保存到本地的 key
  10. paths: ['hasLogin', 'userInfo', 'cookie'], // 要持久化的状态,在state里面取,如果有嵌套,可以 a.b.c
  11. storage: { // 存储方式定义
  12. getItem: (key) => uni.getStorageSync(key), // 获取
  13. setItem: (key, value) => uni.setStorageSync(key, value), // 存储
  14. removeItem: (key) => uni.removeStorageSync(key) // 删除
  15. }
  16. })
  17. ],
  18. state: {
  19. hasLogin: false,
  20. userInfo: {
  21. token: ''
  22. },
  23. lang: 'zh-cn',
  24. cookie: ''
  25. },
  26. mutations: {
  27. login(state, provider) {
  28. state.hasLogin = true;
  29. state.userInfo = provider;
  30. uni.setStorage({ //缓存用户信息
  31. key: 'userInfo',
  32. data: provider
  33. });
  34. },
  35. logout(state) {
  36. state.hasLogin = false;
  37. state.userInfo = {};
  38. uni.removeStorage({
  39. key: 'userInfo'
  40. });
  41. },
  42. setUserInfo(state, provider) {
  43. state.userInfo = provider;
  44. uni.setStorage({ //缓存用户信息
  45. key: 'userInfo',
  46. data: provider
  47. });
  48. },
  49. setCookie(state, provider) {
  50. state.cookie = provider;
  51. uni.setStorage({
  52. key: 'cookieKey',
  53. data: provider
  54. });
  55. }
  56. },
  57. actions: {
  58. }
  59. })
  60. export default store