用途:为 React 应用提供基于 Framer Motion 12.x 的声明式动画方案,涵盖动画、过渡、手势、布局动画与页面切换,并内置性能与无障碍考虑。仅适用于 Web;移动端动画需改用 react-native-reanimated 技能。
主要能力:使用 motion 组件与 initial、animate、transition 属性实现基础动画;用 variants 定义命名状态并配合 staggerChildren、delayChildren 编排复杂序列;支持 spring 物理、关键帧与重复动画;提供 whileHover、whileTap、whileFocus 手势,以及带约束的 drag;layout 与 layoutId 支持自动布局动画和共享元素过渡;AnimatePresence 处理卸载退出动画与路由切换;useScroll、useTransform、useInView 支持滚动进度、视差与进入视口触发;MotionConfig 可全局设置 reducedMotion 与默认过渡。
使用方式:安装命令为 pnpm add framer-motion。基本流程是导入 motion,将元素替换为 motion 变体,添加动画属性,并在开启减少动态效果的情况下测试,最后在 DevTools 中验证 60fps。复杂序列先定义 variants,再应用到父子组件,卸载场景用 AnimatePresence 包裹并加唯一 key。
适用场景:React 网页中的微交互、列表错峰入场、卡片悬停、拖拽、展开收起、共享元素过渡、路由页面切换、滚动视差与进度指示等。
限制与注意:仅限 Web;应只动画 transform 与 opacity 以保证性能,避免直接动画 width、height、top 等触发布局的属性;需尊重 prefers-reduced-motion,可用 useReducedMotion 或 MotionConfig 的 reducedMotion="user";退出动画必须配合 AnimatePresence 且子元素有 key;避免在 SSR 期间动画以防 hydration 不匹配;不要给所有元素都加 motion;避免深层嵌套布局动画;过渡时长建议控制在 500ms 以内。资料未提供收费、价格与平台支持范围等更多信息。