@equinor/fusion-framework-react

中文文档
9.0.5发布于 2026/11/12ISCTypeScriptES Module近 30 天下载 7404
中文使用文档
文档目录19 节
  1. 特征
  2. 安装
  3. 使用量
  4. 启动框架(声明)
  5. 启动框架( 构件)
  6. 假设框架
  7. 获取特定模块
  8. API 参考
  9. 构成部分
  10. 工厂
  11. 核心钩
  12. 相接钩( A) /app (中文(简体) )
  13. 上下文钩( E) /context (中文(简体) )
  14. 地物-旗钩( /feature-flag (中文(简体) )
  15. HTTP 钩 ( /http (中文(简体) )
  16. 方便钩( C) /hooks (中文(简体) )
  17. 信号R钩( S) /signalr (中文(简体) )
  18. 再出口类型
  19. 出入口

@ equinor/ 组合框架- 反应

靴子绑定和消耗的反应约束 a 融合框架 实例存在于 React 应用程序树中.

特征

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

安装

pnpm add @equinor/fusion-framework-react

使用量

启动框架(声明)

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>
);

启动框架( 构件)

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>
  );
};

假设框架

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

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

获取特定模块

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 共发布 340 个版本,首次发布于 2022/01/14;过去 12 个月发布了 18 个版本。

版本发布日期距今
9.0.5latest2026/11/121 天前
9.0.5-next.1next2026/11/112 天前
9.0.5-next.02026/10/2816 天前
9.0.42026/10/1727 天前
9.0.4-trusted-publishing-20261015-9dfe7602cd2a49a8a9df00d62c26e7304a82a85atrusted-publishing-202610152026/10/1629 天前
9.0.32026/10/121 个月前

其他发布通道:apploader → 7.4.13-apploader-be21a6b60eb13eee8bf869e75002d8634e9c50a9,cli-search-index → 7.4.20-cli-search-index.0,msal-v5 → 7.4.20-msal-v5.1,trusted-publishing-20261015 → 9.0.4-trusted-publishing-20261015-9dfe7602cd2a49a8a9df00d62c26e7304a82a85a,next → 9.0.5-next.1。

关于 @equinor/fusion-framework-react 的常见问题

如何安装 @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 和提交记录判断。