# @cds/react 中文文档

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

版本：6\.16\.1
npm 元数据更新时间：2025-08-08T09:58:29.691Z
中文译文更新时间：2026-11-09T13:38:24.386Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40cds/react
原文对照：https://npmcn.com/package/%40cds/react/?lang=original
项目主页：https://core.clarity.design/
源码仓库：https://github.com/vmware-clarity/core

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

- 包体积（解压后）：448 kB，177 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：3 个
- peer 依赖：react \>= 16\.13\.1，react-dom \>= 16\.13\.1，@cds/core 6\.16\.1
- 首次发布：2020-12-02T17:39:27.049Z
- 最新版本发布：2025-08-08T09:58:29.484Z
- 近 30 天下载量：2507（2026-10-10 至 2026-11-08，npm 官方下载统计）
- 已发布版本数：96（近 12 个月 0 个）

## 中文简介

清晰反应的核心组件模块

## 安装

```sh
npm install @cds/react
```

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

## README

# Core Web 组件的清晰反应收发器 [![npm version](https://badge.fury.io/js/%40clr%2Freact.svg)](https://badge.fury.io/js/%40clr%2Freact)

Clearty Core是Web组件的套件,来自 [清晰设计系统](https://clarity.design/)。因为反应 [与自定义元素不完全互通](https://custom-elements-everywhere.com/) 我们开发了这个 React 组件库,将清晰的 Web 组件包起来

## 安装

1.  (可选):从 npm 安装 Clarity 核心包.
    
    ```bash
    npm install @cds/core --save
    ```
    
2.  从 npm 安装 Clarity 反应包 .
    
    ```bash
    npm install @cds/react --save
    ```
    
3.  将想要的组件导入到您的 JavaScript 或 TypeScript
    
    ```typescript
    import { CdsModal, CdsModalActions, CdsModalContent, CdsModalHeader } from '@cds/react/modal';
    ```
    
4.  在 React 中使用 resact 包裹的 Web 组件
    
    ```jsx
    {
      /*
      Example of a modal web component in React with React Shim
      - size - attribute style hook
      - open - setting the 'open' property on the element
      - openChange - listen for the `openChange` custom event
    */
    }
    <CdsModal onCloseChange={this.handleCloseModalClick.bind(this, false)}>
      <CdsModalHeader>
        <h3 cds-text="title">My Modal</h3>
      </CdsModalHeader>
      <CdsModalContent>
        <div cds-layout="vertical gap:md p-y:xs">
          <p cds-text="body">Lorem Ipsum</p>
        </div>
      </CdsModalContent>
      <CdsModalActions>
        <div cds-layout="horizontal gap:sm align:right">
          <CdsButton onClick={this.handleCloseModalClick.bind(this, false)} action="outline">
            Cancel
          </CdsButton>
          <CdsButton onClick={this.handleCloseModalClick.bind(this, false)}>Ok</CdsButton>
        </div>
      </CdsModalActions>
    </CdsModal>;
    ```
    

## 使用裁判

在反应中 [参考](https://reactjs.org/docs/refs-and-the-dom.html) 提供访问 DOM 节点或 渲染法中创建的反应元素 。 因为网络组件的生命周期 生活在反应之外 当网络组件完成渲染后,我们的组件提供了一种使用refs的方法:

```typescript
import React from 'react';
import { CdsButton } from '@cds/react/button';

export default class App extends React.Component<{}, {}> {
  buttonRef: React.RefObject<CdsButton>;

  constructor(props: any) {
    super(props);
    this.buttonRef = React.createRef<CdsButton>();
  }

  componentDidMount() {
    this.buttonRef.current.nativeElement.then(element => {
      element.focus();
    });
  }

  render() {
    return (
      <div>
        <CdsButton ref={this.buttonRef}>My button</CdsButton>
      </div>
    );
  }
}
```

## 常见问题

### @cds/react 是什么？

清晰反应的核心组件模块

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

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

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

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

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

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

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

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

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

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

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

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

