Hooks 与 Contexts
4 个 Contexts
AppContext (contexts/AppContext.tsx)
站级交互态与效果状态。提供:
- loading 序列状态
- power / battery / inversion 状态
- 实时统计(FPS 等)
- 首页打字机效果控制
- column hover 状态
所有子组件通过 useAppContext() 消费。
TransitionContext (contexts/TransitionContext.tsx)
控制路由过渡动画。提供:
navigateTo(url)— 所有内部跳转必须用这个,不能用router.push()(GOTCHAS #6)setBackOverride()— 让 detail view 和 lightbox 拦截 BACK 行为
通过 useTransition() 消费。
LayoutAnchorsContext (contexts/LayoutAnchorsContext.tsx)
注册 active scroll container。因为 layout 用锁定高度的内容容器,深链 scroll 必须打到那个容器而不是 document viewport。
SiteAssetsContext (contexts/SiteAssetsContext.tsx)
提供 site-shell 资源(favicon、og:image、avatar)的 catalog 解析结果。消费自 /api/assets/home 的响应。