SuperAPI AI 工具集

signals-dart

通用与其它

查看项目

更新于 10-16 01:08

技能介绍

本技能介绍 signals_core 的高级状态管理能力,适合在 Dart 中构建响应式业务逻辑。

用途与核心原语:提供 signal(initialValue) 创建可变响应式容器,通过 .value 读写并订阅更新;computed(fn) 生成惰性、带记忆的只读派生信号;effect(fn) 运行同步副作用并订阅其中读取的信号,返回 dispose 用于清理;batch(fn) 将多次写入合并为单次事务;untracked(fn) 与 .peek() 用于不建立订阅地读取值。

主要能力:异步方面包含 futureSignal、streamSignal、asyncSignal、computedAsync、computedFrom,用于统一加载/成功/失败状态并避免重复求值。响应式集合包括 listSignal、setSignal、mapSignal、iterableSignal、queueSignal,按元素粒度触发更新。辅助原语有 linkedSignal(可写计算信号,支持手动覆盖与重置)、trackedSignal(撤销/重做历史)、timerSignal(周期计时,支持暂停恢复重置)、connect(事件连接)。所有 options 类支持 copyWith、自定义相等与 hashCode。

用法要点:读取或订阅用 .value;避免在 effect 内循环订阅时可用 .peek() 或 untracked;集合应使用专用包装以获得优化更新。示例:final counter = signal(0); counter.value = 1; final fullName = computed(() => '${first.value} ${last.value}'); final dispose = effect(() => print('Hello $name')); dispose(); batch(() { a.value = 1; b.value = 2; }); final list = listSignal([1, 2], options: ListSignalOptions(autoDispose: true));

适用场景:需要在 Dart 应用中实现细粒度响应式状态、异步数据流与集合管理。限制:资料未提供具体平台支持、性能基准与收费信息,相关内容暂未提供。