# @cerbos/react 中文文档

规范地址：https://npmcn.com/package/%40cerbos/react/

版本：0\.5\.2
npm 元数据更新时间：2026-10-26T17:02:23.554Z
中文译文更新时间：2026-11-09T08:02:26.892Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40cerbos/react
原文对照：https://npmcn.com/package/%40cerbos/react/?lang=original
项目主页：https://github.com/cerbos/cerbos-sdk-javascript/tree/main/packages/react#readme
源码仓库：https://github.com/cerbos/cerbos-sdk-javascript

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

- 包体积（解压后）：48.1 kB，22 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>= 22
- 运行依赖：1 个
- peer 依赖：react \>=18\.0\.0，@cerbos/core ^0\.33\.2
- 首次发布：2024-04-17T14:23:44.082Z
- 最新版本发布：2026-10-26T17:02:22.524Z
- 近 30 天下载量：9687（2026-10-10 至 2026-11-08，npm 官方下载统计）
- 已发布版本数：27（近 12 个月 14 个）

## 中文简介

用于与 Cerbos 政策决策点互动的回弹钩集合

## 安装

```sh
npm install @cerbos/react
```

也可以使用：`pnpm add @cerbos/react`、`yarn add @cerbos/react`、`bun add @cerbos/react`

## README

# @ cerbos/ 反应

[![npm](https://img.shields.io/npm/v/@cerbos/react?style=flat-square)](https://www.npmjs.com/package/@cerbos/react)

与Cerbos政策决策点互动的回放钩子集合.

## 先决条件

-   Cerbos 0.16+ (英语)
-   反应 16.13+

## 安装

```console
$ npm install @cerbos/react
```

## 示例用途

首先,创建一个 [HTTP 密码](https://npmcn.com/package/%40cerbos/http/README.md) 或者说 [内嵌](https://npmcn.com/package/%40cerbos/embedded-client/README.md) Cerbos 客户端,并使用 [`CerbosProvider`](https://cerbos.github.io/cerbos-sdk-javascript/functions/_cerbos_react.CerbosProvider.html)数字 :

```typescript
import { Embedded as Cerbos } from "@cerbos/embedded-client";
// import { HTTP as Cerbos } from "@cerbos/http";
import { CerbosProvider } from "@cerbos/react";

const client = new Cerbos({...});

function MyApp({ children }) {
  const user = useYourAuthenticationLogic(...);

  return (
    <CerbosProvider
      client={client}
      principal={
        user
          ? {
              id: user.id,
              roles: user.roles,
            }
          : {
              // Define an arbitrary ID for unauthenticated users.
              id: "###ANONYMOUS_USER###",
              // Define a role that represents unauthenticated users (at least one is required).
              roles: ["anonymous"],
            }
      }
    >
      {children}
    </CerbosProvider>
  );
}
```

然后,使用客户端在您的组件中进行权限检查,使用所提供的钩子之一:

-   [`useCerbos`](https://cerbos.github.io/cerbos-sdk-javascript/functions/_cerbos_react.useCerbos.html)
-   [`useCheckResource`](https://cerbos.github.io/cerbos-sdk-javascript/functions/_cerbos_react.useCheckResource.html)
-   [`useCheckResources`](https://cerbos.github.io/cerbos-sdk-javascript/functions/_cerbos_react.useCheckResources.html)
-   [`useIsAllowed`](https://cerbos.github.io/cerbos-sdk-javascript/functions/_cerbos_react.useIsAllowed.html)

```typescript
import { useIsAllowed } from "@cerbos/react";

function SomeComponent() {
  const check = useIsAllowed({
    resource: {
      kind: "document",
      id: "1",
      attr: { owner: "user@example.com" },
    },
    action: "view",
  });

  if (check.isLoading) {
    // show spinner
    return "Loading...";
  }

  if (check.error) {
    // handle error
    return "Error...";
  }

  return <div>{check.data && <button>a button document 1</button>}</div>;
```

## 通用JS支持

本套方案仅限无害环境管理,但可能 `require`d 取自Node.js版本22.15+和24+的ConferenceJS模块.

## 进一步阅读

-   [API 参考](https://cerbos.github.io/cerbos-sdk-javascript/modules/_cerbos_react.html)
-   [Cerbos 文档](https://docs.cerbos.dev/)

## 找人帮忙

-   [加入Slack上的Cerbos社区](https://go.cerbos.io/slack)
-   [发送电子邮件到 help@ cerbos.dev](mailto:help@cerbos.dev)

## 常见问题

### @cerbos/react 是什么？

用于与 Cerbos 政策决策点互动的回弹钩集合

### 如何安装 @cerbos/react？

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

### @cerbos/react 支持 TypeScript 吗？

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

### @cerbos/react 支持 ESM 还是 CommonJS？

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

### @cerbos/react 需要什么版本的 Node\.js？

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

### @cerbos/react 可以商用吗？

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

### @cerbos/react 的下载量有多少？

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

### @cerbos/react 还在维护吗？

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

