@actuallab/fusion

中文文档
15.1.24发布于 2026/11/07MITTypeScriptESM + CJS构建来源已验证近 30 天下载 3386

TypeScript 实现 Fusion - 实时状态同步框架

中文使用文档
文档目录7 节
  1. 安装
  2. 计算方法
  3. 反应状态
  4. API 表面
  5. 页:1
  6. 文档
  7. 许可证

@ actuallab/ 组合

npm Documentation License

类型脚本执行 组合核心: 纪念 自动依赖跟踪和串联无效计算。 它给你 Computed<T>,则 @computeMethod 装饰者, ComputedState<T>, (中文(简体) ), MutableState<T>,以及 UIActionTracker ——同样抽象的"融合"在.NET上提供.

这个软件包独立工作(客户端被动状态,不需要服务器). 添加 @actuallab/fusion-rpc 消费 无效的 .NET 服务器的计算服务,以及 @actuallab/fusion-react 让他们成为 在反应.

安装

npm install @actuallab/fusion

无害环境管理首先采用CJS制;船舶自用 .d.ts。仅取决于 @actuallab/core。 。 。 .

计算方法

@computeMethod 相当于 .NET 的 [ComputeMethod] 它包着一个方法 与缓冲和 依赖跟踪。 结果按键 JSON.stringify 辩论.

import { computeMethod } from '@actuallab/fusion';

class CounterService {
    private _counters = new Map<string, number>();

    @computeMethod
    async get(key: string): Promise<number> {
        return this._counters.get(key) ?? 0;
    }

    @computeMethod
    async sum(key1: string, key2: string): Promise<number> {
        // sum() automatically depends on get(key1) and get(key2)
        return (await this.get(key1)) + (await this.get(key2));
    }

    increment(key: string): void {
        this._counters.set(key, (this._counters.get(key) ?? 0) + 1);
        (this.get as any).invalidate(key);  // cascades into sum()
    }
}

没有 Invalidation.Begin() 这里的块: 每个边框计算方法都包含一个 .invalidate(...args) 函数。 对于独立的函数,使用 wrapComputeMethod。 。 。 .

反应状态

ComputedState<T> 每当它使用的东西被作废时即重新计算; MutableState<T> 并使用同一依赖图.

import { ComputedState, MutableState, FixedDelayer } from '@actuallab/fusion';

const state = new ComputedState(
    async () => `Count: ${await counters.get('a')}`,
    { initialValue: 'loading...', updateDelayer: FixedDelayer.get(500) },
);

await state.whenFirstTimeUpdated();
state.value;     // "Count: 0" — and it updates on its own from here on
state.dispose(); // required: stops the update loop

const query = new MutableState('');
query.set('fusion');  // invalidates every computation that called query.use()

API 表面

API 密码说明
Computed<T>, (中文(简体) ), ConsistencyState缓存计算结果 : .value, (中文(简体) ), .update(), (中文(简体) ), .use(), (中文(简体) ), .invalidate(), (中文(简体) ), .whenInvalidated()
Computed.capture(fn)抓起来 Computed<T> 计算产生的呼叫
computeMethod, (中文(简体) ), wrapComputeMethod将方法 / 函数转换为计算函数
ComputedOptions按方法选择,例如:. errorAutoInvalidateDelay
ComputedRegistry, (中文(简体) ), ComputeFunction, (中文(简体) ), ComputeContext内核,用于高级/海关一体化
State<T>, (中文(简体) ), ComputedState<T>, (中文(简体) ), MutableState<T>反应状态
UpdateDelayer, (中文(简体) ), FixedDelayer, (中文(简体) ), UIUpdateDelayer, (中文(简体) ), defaultUpdateDelayer重算间距(%% 32 ms 地板, 重试后退)
UIActionTracker, (中文(简体) ), uiActions跟踪运行 UI 命令, 收集错误, 允许即时更新

页:1

  • 跨度的依赖跟踪 await。 。 。 . 在节点20.16 AsyncContext 由 AsyncLocalStorage,所以它只是工作。 (笑声) 浏览器中的孩子 AsyncContext 交给你 将方法计算为有线索的论证——接受并转发入巢计算调用. 见 AsyncContext:为什么它很重要。 。 。 .
  • 处理你的 ComputedState编号. 否则他们的更新循环会持续运行.
  • 错误. 默认 1 s 后自动验证错误输出( 可配置) 通过 @computeMethod({ errorAutoInvalidateDelay })),各州从不这样做——它们用后退来重试. 取消形状错误永远不会被缓存 .

文档

许可证

麻省理工学院——见 自由主义。 。 。 .

版本与发布记录

@actuallab/fusion 共发布 54 个版本,首次发布于 2026/02/18;过去 12 个月发布了 54 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
15.1.24latest2026/11/07今天
15.1.222026/11/07今天
15.1.152026/11/07今天
15.1.112026/11/07今天
15.1.62026/11/07今天
15.0.212026/10/2414 天前

关于 @actuallab/fusion 的常见问题

@actuallab/fusion 是什么?

TypeScript 实现 Fusion - 实时状态同步框架

如何安装 @actuallab/fusion?

在项目目录运行 npm install @actuallab/fusion,或使用 pnpm add / yarn add / bun add。

@actuallab/fusion 支持 TypeScript 吗?

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

@actuallab/fusion 支持 ESM 还是 CommonJS?

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

@actuallab/fusion 可以商用吗?

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

@actuallab/fusion 的下载量有多少?

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

@actuallab/fusion 还在维护吗?

最新版本 15.1.24 发布于 2026/11/07(今天);至今共发布 54 个版本,其中过去 12 个月发布了 54 个;首次发布于 2026/02/18。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。