Appearance
菜单渲染上下文栈(RenderContext)
系统概览
菜单渲染上下文栈(零依赖叶子)。从 menus/menu.ts 抽出,断开 core → menus 反向边:core 层控件(ui-rows / ui-collapsible / ui-header-toggle)渲染期需注册自更新控件,过去经 menu.ts 的 getCurrentRenderingMenu 取得 SlideMenu 形成双向环;此处以最小 RenderContext 接口反转依赖——core 只认接口,menus/menu.ts 单向 push/pop SlideMenu 实例。
核心职责
RenderContext接口:registerControl(update, pathHint?)(由菜单updateControls()统一驱动刷新)_renderingStack栈;getCurrentRenderingContext()取栈顶;pushRenderingContext/popRenderingContext配对进出
对外 API(节选)
getCurrentRenderingContext()pushRenderingContext(ctx)/popRenderingContext()
关键约定
- 零依赖叶(禁引
menus/);仅实现最小接口 push/pop必须配对(pop置于finally)pathHint用于按 key 节流,仅本帧变更才调用update
与其他子系统关系
- 被 core 控件(如
ui-header-toggle)经getCurrentRenderingContext()?.registerControl使用 menus/menu.ts实现RenderContext并在渲染期push/pop具体SlideMenu实例