# @douyinfe/semi-animation-react 中文文档

规范地址：https://npmcn.com/package/%40douyinfe/semi-animation-react/

版本：2\.105\.0
npm 元数据更新时间：2026-11-12T09:40:12.559Z
中文译文更新时间：2026-11-12T17:55:42.516Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40douyinfe/semi-animation-react
原文对照：https://npmcn.com/package/%40douyinfe/semi-animation-react/?lang=original
项目主页：https://github.com/DouyinFE/semi-design#readme
源码仓库：https://github.com/DouyinFE/semi-design

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：79.6 kB，43 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：3 个
- 首次发布：2021-10-25T14:53:59.546Z
- 最新版本发布：2026-11-12T09:40:12.293Z
- 近 30 天下载量：84424（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：592（近 12 个月 67 个）

## 中文简介

半自动反应的运动库

## 安装

```sh
npm install @douyinfe/semi-animation-react
```

也可以使用：`pnpm add @douyinfe/semi-animation-react`、`yarn add @douyinfe/semi-animation-react`、`bun add @douyinfe/semi-animation-react`

## README

> 基于 `@douyinfe/semi-animation`。 。 。 .

所有组件在 `@douyinfe/semi-ui` 根据这个动画库执行,例如: Modal, Tooltip, Collapse 和其他组件内容显示和退出效果.

## 安装

```sh
npm install @douyinfe/semi-animation-react
```

## 使用量

### 过渡构成部分

它用于实现组件的动画效果\[显示并退出\]. 例如:

```jsx
import { Transition } from "@douyinfe/semi-animation-react";
import { useState } from "react";

export default function App() {
  const [visible, setVisible] = useState(false);
  return (
    <div className="App">
      <Transition
        state={visible ? "enter" : "leave"}
        from={{ opacity: 0, scale: 0}}
        enter={{ opacity: 1, scale: 1 }}
        leave={{ opacity: 0, scale: 0 }}
      >
        {({ scale, opacity }: any) => (
          <h2 style={{transform: `scale(${scale})`, opacity}}>
            Toggle to see some animation happen!
          </h2>
        )}
      </Transition>

      <button onClick={() => {
        setVisible((state) => !state)
      }}>toggle</button>
    </div>
  );
}
```

### 道具

| 名称 | 类型 | 需求 | 默认 | 说明 |
| --- | --- | --- | --- | --- |
| 从 | 对象 | Y |  | 初始状态 |
| 输入 | 对象 | Y |  | 显示动画的结束状态, 但也显示退出动画的初始状态 |
| 离开 | 对象 | Y |  | 退出动画的终止状态 |
| 状态 | Enum “ 进入” 、 “ 离开” | 无 | '' | 当前状态 |
| 将输入 | 函数 | 无 | \=> {} | 输入动画开始前的回调功能 |
| 输入 | 函数 | 无 | \=> {} | 动画结束前的回调功能 |
| 将离开 | 函数 | 无 | \=> {} | 退出动画开始前的回调功能 |
| 离开 | 函数 | 无 | \=> {} | 退出动画结束前的回调功能 |
| 开始 | 函数 | 无 | \=> {} | 动画开始前的回调功能,包括出入口 |
| 备份 | 函数 | 无 | \=> {} | 动画结束前的回调功能, 包括进出 |
| 配置 | 配置类型 | 无 | {} | 其他动画参数 |

### 配置

| 名称 | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| 会期 | 数目 | 1 000个 | 动画持续时间. 如果通过此参数, 动画的放松功能将使用松动或线性函数, unit: ms |
| 放宽 | 函数 QQ 串 |  | 减轻动画功能. 如果持续时间没有通过,则默认使用弹簧松动功能. 如果持续时间参数被传入,则默认会使用线性宽松函数. 例如,收到的 `"cubic-bezier(.17,.67,.83,.67)"` 将会使动画帧更新按照此轻松功能进行 |
| 紧张 | 数目 | 170国 | 紧张,用于弹簧松动功能 |
| 摩擦 | 数目 | 页:1 | Friction,用于弹簧松动功能 |

## 常见问题

### @douyinfe/semi-animation-react 是什么？

半自动反应的运动库

### 如何安装 @douyinfe/semi-animation-react？

在项目目录运行 npm install @douyinfe/semi-animation-react，或使用 pnpm add / yarn add / bun add。

### @douyinfe/semi-animation-react 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @douyinfe/semi-animation-react 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @douyinfe/semi-animation-react 可以商用吗？

@douyinfe/semi-animation-react 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @douyinfe/semi-animation-react 的下载量有多少？

根据 npm 官方下载统计，@douyinfe/semi-animation-react 在 2026/10/13 – 2026/11/11 这 30 天内被下载 84,424 次，日均约 2,814 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @douyinfe/semi-animation-react 还在维护吗？

最新版本 2\.105\.0 发布于 2026/11/12（1 天前）；至今共发布 592 个版本，其中过去 12 个月发布了 67 个；首次发布于 2021/10/25。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

