# @equinor/fusion-framework-react 中文文档

规范地址：https://npmcn.com/package/%40equinor/fusion-framework-react/

版本：9\.0\.5
npm 元数据更新时间：2026-11-12T09:57:55.212Z
中文译文更新时间：2026-11-13T20:33:29.653Z
软件包许可：ISC

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

原始 npm 页面：https://www.npmjs.com/package/%40equinor/fusion-framework-react
原文对照：https://npmcn.com/package/%40equinor/fusion-framework-react/?lang=original
源码仓库：https://github.com/equinor/fusion-framework

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

- 包体积（解压后）：469 kB，88 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：6 个
- peer 依赖：react ^18\.0\.0 \|\| ^19\.0\.0，react-dom ^18\.0\.0 \|\| ^19\.0\.0，@types/react ^18\.0\.0 \|\| ^19\.0\.0，@equinor/fusion-framework-module-feature-flag ^2\.2\.0，@equinor/fusion-framework-react-module-signalr ^4\.0\.8
- 首次发布：2022-01-14T12:18:22.328Z
- 最新版本发布：2026-11-12T09:57:54.738Z
- 近 30 天下载量：7404（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：340（近 12 个月 18 个）

## 中文简介

暂无中文简介

## 安装

```sh
npm install @equinor/fusion-framework-react
```

也可以使用：`pnpm add @equinor/fusion-framework-react`、`yarn add @equinor/fusion-framework-react`、`bun add @equinor/fusion-framework-react`

## README

# @ equinor/ 组合框架- 反应

靴子绑定和消耗的反应约束 a [融合框架](https://github.com/equinor/fusion-framework) 实例存在于 React 应用程序树中.

## 特征

-   **框架提供者** ——通过 React 语境,以单一组件或厂家功能实现框架并发布.
-   **`useFramework` 钩子** ——进入活动方 `Fusion` 从任何后裔部分.
-   **模块钩** 检索单个框架模块(`useFrameworkModule`)无手动接线.
-   **应用钩** ——观察当前活跃的应用程序,查询应用表,访问应用级模块.
-   **上下文钩** ——读取当前所选的Fusion上下文.
-   **地物旗钩** ——在框架或应用级别上读取,切换并观察特征标志.
-   **HTTP 钩** ——获得预配置的HTTP客户端(`portal`, (中文(简体) ), `people`从框架.
-   **认证钩** ——检索当前认证的用户.
-   **信号钩** ——订阅实时信号R中枢专题.

## 安装

```sh
pnpm add @equinor/fusion-framework-react
```

## 使用量

### 启动框架(声明)

```tsx
import { Framework } from '@equinor/fusion-framework-react';

const App = () => (
  <Framework
    configure={(configurator) => {
      configurator.http.configureClient('my-api', {
        baseUri: 'https://api.example.com',
      });
    }}
    fallback={<span>Loading…</span>}
  >
    <MyApp />
  </Framework>
);
```

### 启动框架( 构件)

```tsx
import { createFrameworkProvider } from '@equinor/fusion-framework-react';
import { Suspense, useMemo } from 'react';

const Portal = () => {
  const Provider = useMemo(
    () =>
      createFrameworkProvider((config) => {
        config.http.configureClient('my-api', {
          baseUri: 'https://api.example.com',
        });
      }),
    [],
  );

  return (
    <Suspense fallback={<span>Loading…</span>}>
      <Provider>
        <App />
      </Provider>
    </Suspense>
  );
};
```

### 假设框架

```ts
import { useFramework } from '@equinor/fusion-framework-react';

const useMyService = () => {
  const fusion = useFramework();
  return fusion.modules.http.createClient('my-api');
};
```

### 获取特定模块

```ts
import { useFrameworkModule } from '@equinor/fusion-framework-react';
import type { HttpModule } from '@equinor/fusion-framework-module-http';

const http = useFrameworkModule<HttpModule>('http');
```

## API 参考

### 构成部分

| 导出 | 说明 |
| --- | --- |
| `Framework` | 声明部分,将框架纳入其中,并将儿童包装在提供者中. |
| `FrameworkProvider` | 现有的低级反应上下文提供者 `Fusion` 举个例子. |

### 工厂

| 导出 | 说明 |
| --- | --- |
| `createFrameworkProvider(cb, ref?)` | 创建一个 `React.lazy` 组件,同步设置框架。 一定在内部 `<Suspense>`。 。 。 . |

### 核心钩

| 钩子 | 说明 |
| --- | --- |
| `useFramework()` | 返回活动 `Fusion` 实例. |
| `useFrameworkModule(name)` | 从框架中按键返回一个特定模块. |

### 相接钩( A)`/app`(中文(简体) )

| 钩子 | 说明 |
| --- | --- |
| `useApps(args?)` | 列出可用的应用程序列表 . |
| `useCurrentApp()` | 查看并返回当前活动的应用程序 . |
| `useCurrentAppModule(key)` | 从当前应用程序获取模块 . |
| `useCurrentAppModules()` | 当前应用程序的已关闭模块 . |
| `useAppProvider()` | 返回原始数据 `AppModule` 供养. |

### 上下文钩( E)`/context`(中文(简体) )

| 钩子 | 说明 |
| --- | --- |
| `useCurrentContext()` | 返回当前选中的合并上下文 . |

### 地物-旗钩(`/feature-flag`(中文(简体) )

| 钩子 | 说明 |
| --- | --- |
| `useFeature(provider, key)` | 读取并切换出一面单一的特征旗. |
| `useFeatures(provider, selector?)` | 通过可选过滤返回所有特性标记. |
| `useFrameworkFeature(key)` | 从框架提供者读取一个特征旗. |
| `useFrameworkFeatures()` | 返回所有框架级特征旗. |
| `useCurrentAppFeatures()` | 返回当前应用程序的特性标记 . |

### HTTP 钩 (`/http`(中文(简体) )

| 钩子 | 说明 |
| --- | --- |
| `useFrameworkHttpClient(name)` | 返回预配置的 HTTP 客户端. |

### 方便钩( C)`/hooks`(中文(简体) )

| 钩子 | 说明 |
| --- | --- |
| `useHttpClient(name)` | 返回框架 HTTP 客户端(`'portal'` 或者说 `'people'`) (中文(简体) ). |
| `useCurrentUser()` | 返回认证用户的账户信息 . |

### 信号R钩( S)`/signalr`(中文(简体) )

| 钩子 | 说明 |
| --- | --- |
| `useSignalR(hubId, topicId)` | 订阅信号R中枢主题. |

### 再出口类型

| 类型 | 来源 |
| --- | --- |
| `Fusion` | `@equinor/fusion-framework` |
| `FusionConfigurator` | `@equinor/fusion-framework` |
| `AppManifest`, (中文(简体) ), `AppConfig`, (中文(简体) ), `AppType`, (中文(简体) ), `IApp` | `@equinor/fusion-framework-module-app` |
| `IFeatureFlag`, (中文(简体) ), `IFeatureFlagProvider` | `@equinor/fusion-framework-module-feature-flag` |

## 出入口

该套件暴露出几个可树动进口的子入口点:

-   `@equinor/fusion-framework-react` ——核心提供者和钩子
-   `@equinor/fusion-framework-react/app` - 应用钩
-   `@equinor/fusion-framework-react/context` - 上下文钩
-   `@equinor/fusion-framework-react/feature-flag` - 地标钩
-   `@equinor/fusion-framework-react/hooks` - 方便钩
-   `@equinor/fusion-framework-react/http` - HTTP 钩
-   `@equinor/fusion-framework-react/signalr` - 信号钩

## 常见问题

### 如何安装 @equinor/fusion-framework-react？

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

### @equinor/fusion-framework-react 支持 TypeScript 吗？

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

### @equinor/fusion-framework-react 支持 ESM 还是 CommonJS？

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

### @equinor/fusion-framework-react 可以商用吗？

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

### @equinor/fusion-framework-react 的下载量有多少？

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

### @equinor/fusion-framework-react 还在维护吗？

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

