用途:为 Next.js App Router 项目构建或审查动画,涵盖 GSAP 页面过渡、组件进入/退出、滚动效果、被中断的运动以及清理。核心生命周期为:mount → initial state → intro → settled → outro → end state → unmount;挂载与卸载归 React 管,动画负责中间五个阶段。启用 cacheComponents 时,路由隐藏视为卸载,重新显示视为在保留 DOM 上的挂载。
主要能力与用法:先读仓库说明、现有动画、布局、导航、CSS、无障碍约定与检查项;确认使用 App Router(Pages Router 应改用对应版本指南);读取已安装 Next.js 版本,优先用 node_modules/next/dist/docs/ 中的文档,注意版本门槛:onNavigate 与 useLinkStatus(15.3)、<ViewTransition> 与 transitionTypes(16.2)、cacheComponents 下的 <Activity> 路由保留(16.0,需开启);检查 Next 配置中的 cacheComponents。引擎选择:共享元素变形、页面交叉淡入、Suspense 切换优先用 React <ViewTransition>;实时 DOM 的出场门控导航、可中断序列、拆分文本、滚动联动用 GSAP,同一元素只用一种引擎。GSAP 仅在客户端运行,需限定选择器作用域,并清理每个 tween、trigger、split 与监听器。
规则与限制:保留不可见入场,初始化失败时恢复当前进入方;用普通 CSS 与稳定包裹层预留最终几何,避免布局空间翻倍;结构数据就绪后再显示,未决的鉴权或查询不得伪装成访客或空内容;挂载后先设初值再绘制,成功初始化不得先闪现已稳定内容;settled 时清除临时样式,will-change 仅在动画期间使用;用能力查询区分设备档位,触摸状态需释放,控件不依赖悬停;出场与结束状态期间保持离开页面挂载可见,结束回调后才卸载或由路由隐藏;cacheComponents 下重新显示会复用已含稳定值的 DOM,不能假设新节点;前进后退不跑 outro,只走 intro;保留原生链接行为、焦点、滚动与无 JS 可读性;减少动态效果需到达同一稳定状态并触发所有完成回调;定义中断与快速点击行为,完成时只释放一次导航等待。实际验证建议在真实浏览器进行,涉及路由、配置、依赖或发布变更时用生产构建。资料未提供具体安装命令与代码示例。