封装Vuex的登录Action并处理token思路

  • Post author:
  • Post category:vue


登录页面→                 Vuex => action   **  dispatch        →                         跳转到主页面

↓                             ↑

调用登录接口Commit           ↑        resolve

↓                             ↑

修改token的状态—————↑

配置store/modules/user.js

// 状态
const state = {
  token: null//设置tokenD的共享的状态
}
// 修改状态
const mutations = {}
// 执行异步
const actions = {}
export default {
  namespaced: true,
  state,
  mutations,
  actions
}

token不都是通过登录才能获取的,可以将token存到本地缓存中,封装好token的转态  获取token  设置token    删除token的方法 方便调用

import Cookies from 'js-cookie'

const TokenKey = 'xxxx-xxxxtoken' // 设定一个独一无二的key

export function getToken() {
  return Cookies.get(TokenKey)
}

export function setToken(token) {
  return Cookies.set(TokenKey, token)
}

export function removeToken() {
  return Cookies.remove(TokenKey)
}

初始化token

import { getToken, setToken, removeToken } from '@/utils/auth'
// 状态
// 初始化的时候从缓存中读取状态 并赋值到初始化的状态上
// Vuex的持久化 如何实现 ? Vuex和前端缓存相结合
const state = {
  token: getToken() // 设置token初始状态   token持久化 => 放到缓存中
}

探后在

mutations

中修改token

封装登录的action

登录的时候要调用登录的接口 成功设置token到vuex 失败则返回失败

注意actions的修改必须要通过mutations  调用commit属性

思路   token值其他的模块有可能也用的到,单独封装,当做公共属性以便共享



版权声明:本文为weixin_63473024原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。