@ 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 - 信号钩