/**
|
* 全局复用的变量、组件、配置,各个模块之间共享
|
* 通过单例模式实现,单例必须注意不受请求影响,例如用户信息这些需要根据请求获取的。后续如果有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();
|