一、将用户信息存在vuex和localstorage中

1.存在localstorage中,实现自动登录

(1)往localstorage中存数据次数多,可以封装一个工具函数
  1. /**
  2. * 存数据
  3. * 取数据
  4. * 删除数据
  5. */
  6. export function addItem(key, val) {
  7. /**
  8. * 基本类型数据
  9. * 引用数据类型
  10. */
  11. if (typeof val === 'object') {
  12. val = JSON.stringify(val)
  13. }
  14. localStorage.setItem(key, val)
  15. }
  16. export function getItem(key) {
  17. /**
  18. * 获取基本数据类型字符串
  19. * 获取转换后的引用类型
  20. */
  21. const data = localStorage.getItem(key)
  22. try {
  23. return JSON.parse(data)
  24. } catch {
  25. return data
  26. }
  27. }
  28. export function removeItem(key) {
  29. localStorage.removeItem(key)
  30. }
  31. export function removeAllData(key) {
  32. localStorage.clear()
  33. }

(2)触发action,获取到token后,提交mutation

a.在mutation里面保存vuex,也保存localstorage

b.设置localstorage时,使用常量,创建常量文件夹保存常量
  1. export const TOKEN = 'token'

(3)为了实现自动登录,vuex中的token初始值应该为从localstorage中获取
  1. state: () => ({
  2. token: getItem(TOKEN)
  3. }),

2.存在vuex中