feat: 🎸 新增pinia组合式api的编程,options代码注释起来,两种模式都可以使用,推荐跟vue3.x使用组合式

This commit is contained in:
huangwentao 2022-08-22 10:22:46 +08:00
parent 5ffa491c8b
commit 6f4e6b8e42

View File

@ -6,35 +6,62 @@ import { watch } from 'vue';
const { VITE_TOKEN_KEY } = import.meta.env;
const token = useCookies().get(VITE_TOKEN_KEY as string);
interface StoreUser {
token: string;
info: Record<any, any>;
}
// interface StoreUser {
// token: string;
// info: Record<any, any>;
// }
export const useUserStore = defineStore({
id: 'app-user',
state: (): StoreUser => ({
token: token,
info: {},
}),
getters: {
getUserInfo(): any {
return this.info || {};
},
},
actions: {
setInfo(info: any) {
this.info = info ? info : '';
},
login() {
return new Promise((resolve) => {
const { data } = loginPassword();
watch(data, () => {
this.setInfo(data.value);
// useCookies().set(VITE_TOKEN_KEY as string, data.value.token);
resolve(data.value);
});
// export const useUserStore = defineStore({
// id: 'app-user',
// state: (): StoreUser => ({
// token: token,
// info: {},
// }),
// getters: {
// getUserInfo(): any {
// return this.info || {};
// },
// },
// actions: {
// setInfo(info: any) {
// this.info = info ? info : '';
// },
// login() {
// return new Promise((resolve) => {
// const { data } = loginPassword();
// watch(data, () => {
// this.setInfo(data.value);
// // useCookies().set(VITE_TOKEN_KEY as string, data.value.token);
// resolve(data.value);
// });
// });
// },
// },
// });
export const useUserStore = defineStore('app-user', () => {
const Token = ref(token);
const info = ref<Record<any, any>>({});
const setInfo = (info: any) => {
info.value = info ? info : '';
};
const getUserInfo = () => {
return info || {};
};
const login = () => {
return new Promise((resolve) => {
const { data } = loginPassword();
watch(data, () => {
setInfo(data.value);
// useCookies().set(VITE_TOKEN_KEY as string, data.value.token);
resolve(data.value);
});
},
},
});
};
return {
Token,
info,
setInfo,
login,
getUserInfo,
};
});