# @dynatrace-sdk/react-hooks 中文文档

规范地址：https://npmcn.com/package/%40dynatrace-sdk/react-hooks/

版本：1\.15\.3
npm 元数据更新时间：2026-10-15T10:41:31.672Z
中文译文更新时间：2026-11-13T02:35:09.675Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40dynatrace-sdk/react-hooks
原文对照：https://npmcn.com/package/%40dynatrace-sdk/react-hooks/?lang=original

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

- 包体积（解压后）：303 kB，10 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：11 个
- peer 依赖：react ^17\.0\.0 \|\| ^18\.0\.0 \|\| ^19\.0\.0
- 首次发布：2023-08-11T13:01:02.539Z
- 最新版本发布：2026-10-15T10:41:31.472Z
- 近 30 天下载量：16375（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：37（近 12 个月 14 个）

## 中文简介

这个 `@dynatrace-sdk/react-hooks` 库提供了一个与Dynatrace平台服务客户端在React应用程序中互动的无缝方式. 这个软件包会利用钩子来大大简化React内部对Dynatrace服务的使用. 详细信息

## 安装

```sh
npm install @dynatrace-sdk/react-hooks
```

也可以使用：`pnpm add @dynatrace-sdk/react-hooks`、`yarn add @dynatrace-sdk/react-hooks`、`bun add @dynatrace-sdk/react-hooks`

## README

# @dynathrace-sdk/反应-呼克

这个 `@dynatrace-sdk/react-hooks` 库提供了一个与Dynatrace平台服务客户端在React应用程序中互动的无缝方式. 这个软件包会利用钩子来大大简化React内部对Dynatrace服务的使用. 详情请访问 [`Developer Portal`](https://dt-url.net/1s028x2)。 。 。 .

```bash
npm install @dynatrace-sdk/react-hooks
```

### 来自圣杯的简化数据查询

传统上,在Dynatrace查询数据涉及使用客户端-query包并管理复杂的反应状态. 这个 `useDql` 在此包中勾勾可以简化此进程 。 以下示例展示了如何用 DQL 查询获取数据 :

```javascript
const { data, error, isLoading } = useDql('fetch logs');
```

这个钩子完全兼容 `queryExecute` 函数 `@dynatrace-sdk/client-query` 软件包.

例如,为了限制返回的结果的数目:

```javascript
const { data, error, isLoading, refetch } = useDql({
  query: 'fetch logs',
  maxResultRecords: 2000,
});
```

您可以延迟查询的执行, 直至用户通过将额外查询选项传递给钩头点击按钮:

```javascript
const { data, error, isLoading, refetch } = useDql('fetch logs', { enabled: false });

function onClickQuery() {
  refetch();
}
```

您应该根据查询类型在您的应用程序配置中添加适当的范围 。 详情请参见: [圣杯文档中的 Bucket 和表格权限](https://www.dynatrace.com/support/help/platform/grail/assign-permissions-in-grail)。 。 。 .

### 获取圣杯字段

这个 `useGrailFields` 钩子从自动完成和DSS查询来源中获取“圣杯”字段,并将其分别曝光为 `autocompleteData` 财务报告和审定财务报表 `dssData`编辑 `dataObject` 接受 `"logs"`, (中文(简体) ), `"spans"`, (中文(简体) ), `"smartscape.nodes"`,或 `"metrics"`。 。 。 .

```javascript
const { data, isLoading, isError, errors } = useGrailFields({
  autocompleteQueryOptions: { query: 'fetch logs' },
  dssQueryOptions: { dataObject: 'logs' },
});
```

使用 `select` 在返回前将原始数据转换为 `data`数字 :

```javascript
const { data } = useGrailFields({
  autocompleteQueryOptions: { query: 'fetch logs' },
  dssQueryOptions: { dataObject: 'logs' },
  select: ({ autocompleteData }) =>
    autocompleteData?.suggestions?.map((s) => s.suggestion ?? '') ?? [],
});
```

### 与文档和应用程序状态交互

除了DQL查询之外,我们的钩子还有利于与文档和app状态的互动. 它们允许对立即或推迟的查询执行进行控制.

```javascript
const { data, error, isLoading } = useDocument({ id: documentId }, { autoFetch: true });
```

为了创建、更新或删除文档或应用程序状态,需要明确执行调用:

```javascript
const { data, execute, error } = useCreateDocument();

function onClickCreateDocument() {
  execute(DOCUMENT_DATA);
}
```

根据您的交互类型, 将这些范围添加到您的应用程序配置中 :

| 函数 | 范围 |
| --- | --- |
| 文件已读取 | 文档: 已读 |
| 文件编写/更新 | 文档:文档:写入 |
| 删除文档 | 文档: 删除 |
| 状态改为 | 状态: app- states: read |
| 国家书写 | 状态: app- states: write |
| 国家删除 | 状态: app- states: 删除 |
| 用户状态已读取 | 状态: 用户- 应用状态: 已读 |
| 用户状态写入 | 状态: 用户- 应用程序状态: write |
| 用户状态删除 | 状态: 用户- 应用状态: 删除 |

### 与设置交互

设置可以通过以下方式使用:

```javascript
const { data, error, isLoading } = useSettingsV2(
  { schemaIds: SETTING_SCHEMA },
  { autoFetch: true },
);
```

为了创建、更新或删除设置,需要明确执行呼叫:

```javascript
const { data, execute, error } = useCreateSettingsV2();

function onClickCreateSettings() {
  execute(SETTING_DATA);
}
```

根据您的交互类型, 将这些范围添加到您的应用程序配置中 :

| 函数 | 范围 |
| --- | --- |
| 设置已读取 | 应用程序设置: 对象:已读 |
| 设置写入/更新 | app- 设置: 对象: 写入 |
| 删除设置 | app- 设置: 对象: 删除 |

### 戴维斯分析器的简化使用

利用戴维斯分析器传统上涉及复杂的州管理和投票逻辑,同时 `@dynatrace-sdk/client-davis-analyzers` 软件包。 这个 `useAnalyzer` 在这个一揽子中钩住使这一过程更加直截了当:

```javascript
const { data, error, isLoading } = useAnalyzer({
  analyzerName: 'dt.statistics.GenericForecastAnalyzer',
  body: {
    timeSeriesData: {
      expression: query,
    },
  },
});
```

此勾钩支持执行分析器方法中从 `@dynatrace-sdk/client-davis-analyzers` 软件包.

将分析器的执行推迟到用户动作时, 如点击按钮, 用附加选项配置钩子 :

```javascript
const { data, error, isLoading, refetch } = useAnalyzer({
  analyzerName: 'dt.statistics.GenericForecastAnalyzer',
  body: {
    timeSeriesData: {
      expression: query,
    },
  },
  {
    autoFetch: false,
    autoFetchOnUpdate: true,
  }
});

function onExecuteAnalyzer() {
  refetch();
}
```

在您的应用程序配置中, 包括必要的范围 :

| 函数 | 范围 |
| --- | --- |
| 使用分析器 | davis: 分析器: 执行 |

### App 函数

使用AppFunction hook是最简单的调用app功能的方法. 作为这个包中的其他钩子,它为加载和出错提供了状态处理:

```javascript
const { data, error, isLoading } = useAppFunction({ name: 'functionName', data: 'data' });
```

有时您想要延迟应用功能的执行,直到用户点击按钮. 这可以通过向钩子传递附加选项来实现:

```javascript
const { data, error, isLoading, refetch } = useAppFunction(
  { name: 'functionName', data: 'data' },
  { autoFetch: false, autoFetchOnUpdate: false },
);

function onClick() {
  refetch();
}
```

## 常见问题

### @dynatrace-sdk/react-hooks 是什么？

这个 @dynatrace-sdk/react-hooks 库提供了一个与Dynatrace平台服务客户端在React应用程序中互动的无缝方式\. 这个软件包会利用钩子来大大简化React内部对Dynatrace服务的使用\. 详细信息

### 如何安装 @dynatrace-sdk/react-hooks？

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

### @dynatrace-sdk/react-hooks 支持 TypeScript 吗？

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

### @dynatrace-sdk/react-hooks 支持 ESM 还是 CommonJS？

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

### @dynatrace-sdk/react-hooks 可以商用吗？

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

### @dynatrace-sdk/react-hooks 的下载量有多少？

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

### @dynatrace-sdk/react-hooks 还在维护吗？

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

