index.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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. state: {
  33. //公共的变量,存储数据,这里的变量不能随便修改,只能通过触发mutations的方法才能改变
  34. user: {
  35. openid:'',
  36. avatar: "",
  37. desc: "",
  38. email: "",
  39. phone: "",
  40. sex: "",
  41. token: "",
  42. username: "666",
  43. __v: 0,
  44. _id: "6523ac0dd4e4de99a9e86da2"
  45. },
  46. // 聊天记录
  47. message:[]
  48. },
  49. getters: {
  50. getUser(state) {
  51. return state.user;
  52. },
  53. getMsg(state){
  54. return state.message;
  55. }
  56. },
  57. plugins: [persistedstate({
  58. // 传入参数
  59. storage: {
  60. getItem: (key) => uni.getStorageSync(key),
  61. setItem: (key, val) => uni.setStorageSync(key,val),
  62. removeItem: (key) => uni.removeStorageSync(key)
  63. }
  64. })]
  65. })
  66. export default store