# @bible-strong/avatar-react 中文文档

规范地址：https://npmcn.com/package/%40bible-strong/avatar-react/

版本：0\.1\.0
npm 元数据更新时间：2026-08-17T16:22:43.674Z
中文译文更新时间：2026-11-08T01:30:48.270Z
软件包许可：AGPL-3\.0-only

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

原始 npm 页面：https://www.npmjs.com/package/%40bible-strong/avatar-react
原文对照：https://npmcn.com/package/%40bible-strong/avatar-react/?lang=original
项目主页：https://github.com/smontlouis/bible-strong-avatar-lab#readme
源码仓库：https://github.com/smontlouis/bible-strong-avatar-lab

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

- 包体积（解压后）：90.8 kB，12 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=22\.12\.0
- 运行依赖：1 个
- peer 依赖：react ^19\.0\.0，react-dom ^19\.0\.0
- 首次发布：2026-08-17T16:22:43.232Z
- 最新版本发布：2026-08-17T16:22:43.496Z
- 近 30 天下载量：9098（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：1（近 12 个月 1 个）

## 中文简介

反应19出"圣经""强"(Strong programme avatars)的渲染器.

## 安装

```sh
npm install @bible-strong/avatar-react
```

也可以使用：`pnpm add @bible-strong/avatar-react`、`yarn add @bible-strong/avatar-react`、`bun add @bible-strong/avatar-react`

## README

# @bible-strong/avatar-反应

反应19 出一个经验证的"圣经坚固" `AvatarDefinition`。反应和反应 DOM 19 是对等的 依赖关系; `@bible-strong/avatar-core` 以正常依赖方式安装.

## 安装

```sh
pnpm add @bible-strong/avatar-react react react-dom
```

在应用程序入口处导入软件包样式表一次 :

```tsx
import { Avatar, type AvatarController } from '@bible-strong/avatar-react'
import type { AvatarDefinition } from '@bible-strong/avatar-core'
import '@bible-strong/avatar-react/styles.css'
import { useRef } from 'react'

export function Assistant({ definition }: { definition: AvatarDefinition }) {
  const avatar = useRef<AvatarController>(null)
  return (
    <>
      <Avatar ref={avatar} definition={definition} defaultAnimation="idle" />
      <button onClick={() => avatar.current?.play('happy')}>Play happy</button>
      <button onClick={() => avatar.current?.setExpression('neutral')}>Neutral</button>
    </>
  )
}
```

对于与 JSON 定义相联的可重复使用组件,使用 `createAvatar`它验证了 定义一次,当 JSON 静态键入时,缩小 `animation`, (中文(简体) ), `defaultAnimation`, (中文(简体) ), `expression` 财务报告和审定财务报表 `defaultExpression` 该定义中的语义键:

```tsx
import { createAvatar } from '@bible-strong/avatar-react'
import avatarJson from './strobi.avatar.json'

const StrobiAvatar = createAvatar(avatarJson)

export function Strobi() {
  return <StrobiAvatar defaultAnimation="idle" />
}
```

在运行时获取的定义由同一工厂验证,但其密钥必然是 在运行时选中, 而不是由 TypeScript 推断 .

`play` 财务报告和审定财务报表 `setExpression` 返回时 `{ ok: true }` 键入错误 `unknown_animation`, (中文(简体) ), `unknown_expression` 或者说 `controlled_by_props`。 。 。 . `pause` 冻结精确 时间位置, 呼叫 `play` 用被暂停的密钥恢复它,并且 `stop` 返回一个 无控制的外形 `neutral`。 。 。 .

## 推荐参考

`Avatar` 曝光打入的定义道具,回放状态和演示文稿. `AnimationKey` 财务报告和审定财务报表 `ExpressionKey` 是提供定义中的语义字符串键.

### 定义和播放

| Prop | 类型 | 默认 | 行为 |
| --- | --- | --- | --- |
| `definition` | `AvatarDefinition` | 所需经费 | 经验证的JSON定义包含要渲染的表达和动画. |
| `animation` | `AnimationKey | undefined` | —— 说 | 控制了时间 每个步骤选择显示的表达式。 相互独占 `expression`。 。 。 . |
| `expression` | `ExpressionKey | undefined` | —— 说 | 控制了直接表达 相互排斥 `animation`。 。 。 . |
| `defaultAnimation` | `AnimationKey | undefined` | —— 说 | 初始控制时间,在挂载时读取. 默认启用自动播放 。 相互独占 `defaultExpression`。 。 。 . |
| `defaultExpression` | `ExpressionKey | undefined` | —— 说 | 初始无控制表达式, 在挂载时读取而不启动时间段 。 相互独占 `defaultAnimation`。 。 。 . |
| `autoplay` | `boolean | undefined` | `true` | 开始 `defaultAnimation` 自动。 没有它就没有效果 `defaultAnimation`。 。 。 . |
| `ref` | `Ref<AvatarController> | undefined` | —— 说 | 揭示了下文所述的当务之急. |

`animation` 财务报告和审定财务报表 `expression` 是两个不同的真相来源。 传出两个错误; 元件从不默不作声地凌驾于其中之一。 受控目标优先 故意混合时不受控制的违约.

### 列报

| Prop | 类型 | 默认 | 行为 |
| --- | --- | --- | --- |
| `size` | `number | string | undefined` | `240` | 数字或 CSS 值应用于包装宽度和高度 . |
| `className` | `string | undefined` | —— 说 | CSS课加到外包装上. |
| `style` | `CSSProperties | undefined` | —— 说 | 外包装的内置样式. `width` 财务报告和审定财务报表 `height` 来自 `size`。 。 。 . |
| `ariaLabel` | `string | undefined` | `Procedural avatar` | 为屏幕阅读器宣布了无障碍名称 . |

### 播放回调

| Prop | 类型 | 接收 |
| --- | --- | --- |
| `onAnimationEnd` | `(animation: AnimationKey) => void` | 一个键 `once` 动画自然完成时. |
| `onExpressionChange` | `(expression: ExpressionKey) => void` | 当显示表达式改变时, 语义表达式键 . |
| `onError` | `(error: AvatarRuntimeError) => void` | 通过道具提供的未知动画或表达键. |

未知的密钥经过 `animation`, (中文(简体) ), `expression`, (中文(简体) ), `defaultAnimation` 或者说 `defaultExpression` 报告 `onError`。没有错误处理器,组件会写入输入的运行时间错误 给开发者控制台,而不是默默地失败.

## 强制 API

传出 a `ref` 接收 `AvatarController`。当按钮、事件或其他需要时使用 源头需要驱动一个不受控制的外观:

| 方法 | 类型 | 行为 |
| --- | --- | --- |
| `play(animation)` | `(animation: AnimationKey) => AvatarCommandResult` | 启动动画或恢复其暂停位置. |
| `pause()` | `() => void` | 冻结准确的时间线位置. |
| `stop()` | `() => void` | 停止播放并重置一个不受控制的外观 `neutral`。 。 。 . |
| `setExpression(expression)` | `(expression: ExpressionKey) => AvatarCommandResult` | 直接显示一个表达式. |
| `getState()` | `() => AvatarPlaybackState` | 回返 `activeAnimation?`, (中文(简体) ), `activeExpression` 财务报告和审定财务报表 `status`。 。 。 . |

`play` 财务报告和审定财务报表 `setExpression` 返回时 `{ ok: true }` 或者说 `{ ok: false, error }`。错误包括: `unknown_animation`, (中文(简体) ), `unknown_expression` 财务报告和审定财务报表 `controlled_by_props`时 `animation` 或者说 `expression` 由道具控制,使用这些道具改变目标;必须的目标 命令不能替换父值.

定义经验证后,每件不可改变的对象参考一次,并在 参考内容有变化.

## 有型钩子

样式表显示 `.bs-avatar` 财务报告和审定财务报表 `.bs-avatar__svg`消费者 `className` 财务报告和审定财务报表 `style` 为: 适用于外包装.

公共组件从未曝光工作室ID或文档类型. 软件包跟随语义 发相. 虽然它仍然低于 `1.0.0`,打破 API 更改小版本的增量 校正补丁版本.

## 常见问题

### @bible-strong/avatar-react 是什么？

反应19出"圣经""强"\(Strong programme avatars\)的渲染器\.

### 如何安装 @bible-strong/avatar-react？

在项目目录运行 npm install @bible-strong/avatar-react，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：react（^19\.0\.0）、react-dom（^19\.0\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @bible-strong/avatar-react 支持 TypeScript 吗？

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

### @bible-strong/avatar-react 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @bible-strong/avatar-react 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=22\.12\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @bible-strong/avatar-react 可以商用吗？

@bible-strong/avatar-react 使用 AGPL-3\.0-only 许可。最严格的 Copyleft：除分发外，通过网络向用户提供基于它的服务也需要开源对应源码。闭源 SaaS 使用前务必评估。以上为概括，不构成法律意见，请以许可原文为准。

### @bible-strong/avatar-react 的下载量有多少？

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

### @bible-strong/avatar-react 还在维护吗？

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

