index.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. // 页面路径:store/index.js
  2. import Vue from 'vue'
  3. import Vuex from 'vuex'
  4. import persistedstate from 'vuex-persistedstate'
  5. Vue.use(Vuex); //vue的插件机制
  6. //Vuex.Store 构造器选项
  7. const store = new Vuex.Store({
  8. actions: {
  9. //相当于异步的操作,不能直接改变state的值,只能通过触发mutations的方法才能改变
  10. asyncUpdateUser(context, user) {
  11. context.commit('updateUser', user);
  12. }
  13. },
  14. mutations: {
  15. //相当于同步的操作
  16. updateUser(state, user) {
  17. state.user = user;
  18. },
  19. // 修改头像
  20. updateAvatar(state, data) {
  21. state.user.avatar = data;
  22. },
  23. // 修改昵称nc
  24. updateNc(state, data) {
  25. state.user.nc = data;
  26. },
  27. // 添加聊天信息
  28. addMsg(state, data) {
  29. state.message.push(data)
  30. },
  31. // 保存发布内容
  32. saveformData(state, formData) {
  33. state.formData = formData;
  34. },
  35. removeData(state) {
  36. state.formData = {};
  37. }
  38. },
  39. state: {
  40. //公共的变量,存储数据,这里的变量不能随便修改,只能通过触发mutations的方法才能改变
  41. user: {
  42. openid: '',
  43. avatar: "",
  44. desc: "",
  45. email: "",
  46. phone: "",
  47. sex: "",
  48. token: "",
  49. username: "暂无",
  50. __v: 0,
  51. _id: ""
  52. },
  53. // 聊天记录
  54. // message: [],
  55. formData: {}
  56. },
  57. getters: {
  58. getUser(state) {
  59. return state.user;
  60. },
  61. getMsg(state) {
  62. return state.message;
  63. }
  64. },
  65. plugins: [persistedstate({
  66. // 传入参数
  67. storage: {
  68. getItem: (key) => uni.getStorageSync(key),
  69. setItem: (key, val) => uni.setStorageSync(key, val),
  70. removeItem: (key) => uni.removeStorageSync(key)
  71. }
  72. })]
  73. })
  74. export default store