SuperAPI AI 工具集

vercel-react-view-transitions

前端与建站

查看项目

更新于 10-15 23:32

技能介绍

用途:为 React 应用的界面状态切换添加动画,基于浏览器原生 document.startViewTransition。用 <ViewTransition> 声明动画对象,用 startTransition、useDeferredValue 或 Suspense 触发,用 CSS 类控制动画方式;不支持的浏览器自动跳过动画。

主要能力:支持共享元素(name)、Suspense 揭示、列表身份(逐项 key)、状态进出场、路由级切换等模式,建议按此优先级实现。动画风格按场景选择:层级导航(列表到详情)用 nav-forward/nav-back,横向导航(标签切换)用淡入或 default="none",后台刷新用 default="none"。

使用方式:从 react 导入 ViewTransition 并包裹组件,React 会自动分配 view-transition-name 并调用 startViewTransition,不要自行调用。仅 startTransition、useDeferredValue、Suspense 会激活过渡,普通 setState 不会。注意 <ViewTransition> 必须出现在任何 DOM 节点之前才能激活 enter/exit。

环境要求:Next.js App Router 已内置 React canary,无需安装 react@canary;非 Next.js 需安装 react@canary react-dom@canary。浏览器支持 Chromium 111+、Firefox 144+、Safari 18.2+。

限制与注意:需在全局样式加入 reduced motion 的 CSS;实现时按 references/implementation.md 的审计步骤进行,CSS 配方取自 references/css-recipes.md,不要自行编写动画 CSS。其余细节见 patterns.md、nextjs.md 等按需加载的参考文件。