import { useEffect, useState } from "react" import { Session } from "src/types/session" import { requestApi } from "utils/axios/request" import events from "utils/events" import storage from "utils/localStorage" function useSession(): Session{ const [session, setSession] = useState(null) useEffect(() => { const sess = storage.get('session') if (sess) { setSession(sess) // 页面重新进入时,跟服务器端进行信息同步 requestApi.get(`/session`).then(res => { setSession(res.data) }) } events.on('set-session',storeSession) return() => { events.off('set-session',storeSession) } }, []) const storeSession = (sess: Session) => { sess ? storage.set('session', sess) : storage.remove('session') setSession(sess) } return session } export default useSession