import { IBaseService } from './base'; import { IPageConfig, IPageInstance, TPageNavigationOptions } from '../types'; /** * 页面服务接口 * 负责管理应用中的页面,包括页面的添加、删除、更新、注册和导航等功能 */ export interface IPageService extends IBaseService { /** * 添加页面配置 * @param config 页面配置信息 */ add(config: IPageConfig): void; /** * 删除指定ID的页面 * @param id 页面ID */ delete(id: string): void; /** * 注册页面实例 * @param name 页面名称 * @param instance 页面实例 */ register(name: string, instance: IPageInstance): void; /** * 注销页面实例 * @param name 页面名称 */ unregister(name: string): void; /** * 获取某一个页面配置 * @param pageIdentifier 页面标识符(path或者name) * @returns {IPageConfig}页面配置信息 */ getConfig(pageIdentifier: string): IPageConfig | undefined; /** * 获取当前页面实例 * @param name 页面名称默认 * @returns {IPageInstance}页面实例 */ get(name: string): IPageInstance | undefined; /** * 页面导航方法 * * 有三种使用方式: * 1. 传入数字:正数表示前进几步,负数表示后退几步 * 2. 传入路径对象:{path: '/some-path', query: {key: 'value'}, params: {id: '123'}} * 3. 传入名称对象:{name: 'page-name', query: {key: 'value'}, params: {id: '123'}} * * @param options 导航选项 * - 数字类型: 步数,正数表示前进,负数表示后退,默认为1 * - 对象类型: 包含path或name的导航配置对象 * * @example * // 后退一步 * go(-1) * * // 导航到指定路径 * go({path: '/dashboard', query: {tab: 'overview'}}) * * // 导航到命名路由 * go({name: 'userProfile', params: {id: '123'}}) */ go(options?: TPageNavigationOptions): void; }