fix store

This commit is contained in:
jxxghp
2023-06-25 16:57:20 +08:00
parent 6d1d3091b4
commit 3ae5cf6b3f
5 changed files with 62 additions and 52 deletions

50
src/store/auth.ts Normal file
View File

@@ -0,0 +1,50 @@
import { Module } from 'vuex';
// 定义状态类型
interface AuthState {
token: string | null;
remember: boolean;
}
// 定义根状态类型
interface RootState {
auth: AuthState;
}
// 导出模块
const authModule: Module<AuthState, RootState> = {
namespaced: true,
state: {
token: null,
remember: false,
},
mutations: {
setToken(state, token: string) {
state.token = token;
},
clearToken(state) {
state.token = null;
},
setRemember(state, remember: boolean) {
state.remember = remember;
},
},
actions: {
updateToken({ commit }, token: string) {
commit('setToken', token);
},
clearToken({ commit },) {
commit('clearToken');
},
updateRemember({ commit }, remember: boolean) {
commit('setRemember', remember);
},
},
getters: {
getToken: state => state.token,
getRemember: state => state.remember,
}
};
export default authModule;

View File

@@ -1,52 +1,12 @@
import { ActionTree, GetterTree, MutationTree, createStore } from 'vuex';
import { createStore } from 'vuex';
import createPersistedState from 'vuex-persistedstate';
interface State {
// 登录token
token: string | null;
// 是否记住登录状态
remember: boolean;
}
const state: State = {
token: null,
remember: false,
};
const mutations: MutationTree<State> = {
setToken(state, token: string) {
state.token = token;
},
clearToken(state) {
state.token = null;
},
setRemember(state, remember: boolean) {
state.remember = remember;
},
};
const actions: ActionTree<State, any> = {
updateToken({ commit }, token: string) {
commit('setToken', token);
},
clearToken({ commit },) {
commit('clearToken');
},
updateRemember({ commit }, remember: boolean) {
commit('setRemember', remember);
},
};
const getters: GetterTree<State, any> = {
getToken: state => state.token,
getRemember: state => state.remember,
};
import authModule from './auth';
const store = createStore({
state,
mutations,
actions,
getters,
modules: {
// 用户认证store
auth: authModule,
},
plugins: [
createPersistedState({
// 配置持久化存储的选项