/** * 全局复用的变量、组件、配置,各个模块之间共享 * 通过单例模式实现,单例必须注意不受请求影响,例如用户信息这些需要根据请求获取的。后续如果有ssr需求,也不会影响 */ interface ComponentsState { [key: string]: any } interface MessageState { copyPreferencesSuccess?: (title: string, content?: string) => void } export interface IGlobalSharedState { components: ComponentsState message: MessageState } class GlobalShareState { #components: ComponentsState = {} #message: MessageState = {} /** * 定义框架内部各个场景的消息提示 */ public defineMessage({ copyPreferencesSuccess }: MessageState) { this.#message = { copyPreferencesSuccess, } } public getComponents(): ComponentsState { return this.#components } public getMessage(): MessageState { return this.#message } public setComponents(value: ComponentsState) { this.#components = value } } export const globalShareState = new GlobalShareState()