# @bbc/web-vitals 中文文档

规范地址：https://npmcn.com/package/%40bbc/web-vitals/

版本：2\.6\.0
npm 元数据更新时间：2026-04-16T11:28:12.393Z
中文译文更新时间：2026-11-07T20:51:44.074Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40bbc/web-vitals
原文对照：https://npmcn.com/package/%40bbc/web-vitals/?lang=original
项目主页：https://github.com/bbc/web-vitals/blob/main/README.md
源码仓库：https://github.com/bbc/web-vitals

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

- 包体积（解压后）：29.8 kB，5 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：未声明
- 运行依赖：1 个
- peer 依赖：react ^17\.0\.0 \|\| ^18\.0\.0 \|\| ^19\.0\.0
- 首次发布：2020-10-07T08:27:12.158Z
- 最新版本发布：2026-01-16T11:18:44.533Z
- 近 30 天下载量：2611（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：49（近 12 个月 1 个）

## 中文简介

向一个终点报告网络生命指标的通用钩子

## 安装

```sh
npm install @bbc/web-vitals
```

也可以使用：`pnpm add @bbc/web-vitals`、`yarn add @bbc/web-vitals`、`bun add @bbc/web-vitals`

## README

# 网络视频

这个 `WebVitals` 公用事业提供可配置的钩子,可收集设备容量的度量衡和 [网络维度](https://web.dev/vitals/?gclid=CjwKCAjw-5v7BRAmEiwAJ3DpuGq4yydZBEHoLscEvvrOE5Ef01huTLJebM6jdIWsGKS5L3QeMT5GfhoCNpkQAvD_BwE) 每个页面视图的衡量标准,然后当用户离开页面时将这些衡量标准发送到报告端点.

## 量度我们报告

### 核心网络视频

-   [密码](https://web.dev/cls/) (繁体版式移动)
-   [长效](https://web.dev/lcp/) (最大的内容画)
-   [进口](https://web.dev/fid/) (第一次输入延迟)

### 其他数据(用于对收到的网络信息数据进行分类)

-   [论坛](https://web.dev/fcp/) (第一内容画)
    
-   [专题信托基金B](https://web.dev/time-to-first-byte/) (时间到第一字节)
    
-   [INP (英语)](https://web.dev/inp/) (与下一张画的交互)
    
-   设备内存
    
-   设备 CPU
    
-   有效连接类型
    

## 安装

```jsx
npm install @bbc/web-vitals --save
```

### 安装 `yarn`

网络生命号项目使用 `yarn` 用于软件包管理。 建议安装 `yarn` 通过 npm 软件包管理器,当您安装到您的系统中时,它会与节点. js 捆绑在一起。 要安装 Yarn, 请运行此命令 :

```
npm install --global yarn
```

## 道具

| 参数 | 类型 | 需求 | 默认 | 示例 |
| --- | --- | --- | --- | --- |
| 启用 | 布尔 | 没有 | 虚假 | `{ enabled: true }` |
| 报告终点 | 字符串 | 对 | 不详 | `{ reportingEndpoint: 'https://url.to.report.to/analytics' }` |
| 调用日志 | 函数 | 没有 | `() => {}` | `{ loggerCallback: (error) => console.error(error) }` |
| 样本 | 整数 | 没有 | 100个 | `{ sampleRate: 5 }` |
| 报告 | 对象 | 没有 | `undefined` | `{ reportParams: { pageType: 'STY' }` |
| 获取 | 函数 | 没有 | `window.fetch` | 如果您支持没有本地抓取功能的浏览器, 允许您提供抓取小马填充 |

## 使用量

钩子可以多种方式配置:

-   `enabled` - 设定为 `true` 能够将这些指标发送到报告终点。 这样,只有在用户同意适当的隐私和适当的跟踪设置时,才能打开报告功能.
-   `reportingEndpoint` - 终点,你想发送你的衡量标准
-   `loggerCallback` - 函数,每当试图发送度量衡失败时都会使用.
-   `sampleRate` - 提供1-100之间的数字将设定采样百分比,以防止后端报告服务器超载。 例如,a `sampleRate` 联 合 国 `5` 将意味着5%请求的度量衡将被发送到报告服务器.
-   `reportParams` - 一个将定义附于报告终点的查询字符串参数的对象。 例如,提供 `{ pageType: 'STY' }` 会导致 `?pageType=STY` 附于报告终点.

```jsx
import useWebVitals from "@bbc/web-vitals";
import logger from "./logger";

const Page = props => {
  const enabled = isOnClient() && hasUserAcceptedTracking();
  useWebVitals({
    enabled,
    reportingEndpoint: 'https://url.to.report.to/analytics',
    loggerCallback = logger.error,
    sampleRate: 50,
    reportParams: { pageType: 'STY' },
  });

  return (
    <PageComponents />
  );
};
```

### 何时使用此工具

最好能用到您的应用程序的顶层。 在检查网站访问者是否需要根据当地有关法律接受任何个性化或跟踪许可时,您应恪尽职守,并利用这一点确定网站的价值 `enabled` 道具 (英语).

`useEffect` 钩子只是运行客户端,但在与服务器侧渲染结合使用此钩子时,您可能也希望包含一个代码是否运行客户端的检查,以确保您不会在服务器的能力和用户的能力之间获得不一致.

### 不使用此工具时

在非页面级别组件中,特别是如果这些组件可能多次被添加到一页.

在用户未为相关个性化或追踪许可提供许可的情况下,可能需要相关的地方法律.

## 捐款

Web Vitals 完全开源. 我们感谢任何贡献,无论是新的公用事业、故障修复还是总体改进。 请参看我们的主要贡献指南,可查阅: [网络维生数据库的根](https://github.com/bbc/web-vitals/blob/latest/CONTRIBUTING.md)。 。 。 .

### 行为守则

我们欢迎对这项工作的反馈和帮助。 通过参与这个项目,你同意遵守 [行为守则](https://github.com/bbc/web-vitals/blob/latest/.github/CODE_OF_CONDUCT.md)请稍候再读一下.

### 许可证

网络视频是 [Apache 2.0 许可](https://github.com/bbc/web-vitals/blob/latest/LICENSE.md)。 。 。 .

## 常见问题

### @bbc/web-vitals 是什么？

向一个终点报告网络生命指标的通用钩子

### 如何安装 @bbc/web-vitals？

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

### @bbc/web-vitals 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/bbc\_\_web-vitals 是否存在。

### @bbc/web-vitals 支持 ESM 还是 CommonJS？

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

### @bbc/web-vitals 可以商用吗？

@bbc/web-vitals 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @bbc/web-vitals 的下载量有多少？

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

### @bbc/web-vitals 还在维护吗？

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

