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