用途:为 TanStack Router(React)和 TanStack Start 项目构建或审查 GSAP 动画,处理页面过渡、组件进出场、滚动效果、useBlocker 与 pending UI。动画生命周期为 mount → initial state → intro → settled → outro → end state → unmount,其中挂载与卸载归 React,动画负责中间五个阶段。
主要能力:区分默认 View Transition(快照变形、页面交叉淡入)与 GSAP(实时 DOM 出场、可中断序列、拆分文本、滚动联动),同一元素只用一种引擎。覆盖路由复用与 remountDeps、布局与 Outlet、SSR 与 hydration、延迟数据、平滑滚动(Lenis、ScrollSmoother)、过渡原型(幕布、首次访问预加载、共享元素变形)、设备与输入适配。
使用方式:先读仓库说明、现有动画、布局、导航、CSS、无障碍约定与检查项;确认使用 @tanstack/react-router,Next.js 用 gsap-nextjs,React Router 用 gsap-react-router,无路由 React 用 gsap-react,Solid Router 不在范围内。读取已安装版本及 @tanstack/react-start,优先使用其自带类型(如 node_modules/@tanstack/router-core/dist/esm/router.d.ts、useBlocker.d.ts、@tanstack/history 的 index.d.ts),以 TanStack/router 仓库 docs/router/ 与 docs/start/ 为准。区分文件式路由(createFileRoute、routeTree.gen.ts、__root.tsx)与代码式路由(createRoute、createRootRoute)。区分 TanStack Start(SSR)与纯客户端 Vite 应用。检查 defaultPreload、defaultPendingComponent、defaultPendingMs、defaultPendingMinMs、defaultViewTransition、scrollRestoration、defaultStaleTime、defaultRemountDeps 等选项。可配合官方 gsap-core 与 gsap-react 技能。
限制:GSAP 仅在客户端运行,useGSAP 不在服务端执行,Start 服务端渲染文件中不得在模块作用域调用 GSAP;需清理所有 tween、trigger、split 与监听器。useBlocker 仍标记为实验性;RouterState.isTransitioning 在 router-core 1.171.2x 已移除;1.16x 与 1.17x 的加载架构有变化。同路由换参数会复用组件,需按参数重跑生命周期或设置 remountDeps。前进后退(BACK、FORWARD、GO)不做出场动画。useLocation 在加载开始时即指向目标,不应据此键控路由内容。需保留原生链接行为、预加载、activeProps、焦点、滚动与无 JavaScript 可读性;减少动态效果时仍须到达 settled 并触发完成回调。建议在真实浏览器验证,涉及路由、配置、依赖或发布变更时使用生产构建。