mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-24 20:34:29 +08:00
- 新增 RunInBatch() 方法支持批处理通知折叠 - 添加 Undo()/Redo() 基于历史缓冲区的状态回退前进功能 - 实现 TimeTravelTo() 跳转到指定历史索引的能力 - 提供 ClearHistory() 以当前状态重置历史锚点的功能 - 支持可选历史缓冲区、撤销/重做和时间旅行功能 - 添加可选批处理通知折叠机制 - 实现多态 action 匹配(基类/接口)支持 - 在诊断信息中增加历史游标和批处理状态 - StoreBuilder 新增 WithHistoryCapacity() 和 WithActionMatching() 配置方法 - 优化 reducer 注册支持全局序号以实现稳定排序 - 实现多态匹配时的类型继承距离计算 - 添加批处理嵌套支持和状态通知延迟机制
26 lines
1.1 KiB
C#
26 lines
1.1 KiB
C#
using GFramework.Core.Abstractions.StateManagement;
|
|
|
|
namespace GFramework.Core.StateManagement;
|
|
|
|
/// <summary>
|
|
/// 表示一条由 Store 分发桥接到 EventBus 的事件。
|
|
/// 该事件用于让旧模块在不直接依赖 Store API 的情况下观察 action 分发结果。
|
|
/// </summary>
|
|
/// <typeparam name="TState">状态树的根状态类型。</typeparam>
|
|
public sealed class StoreDispatchedEvent<TState>
|
|
{
|
|
/// <summary>
|
|
/// 初始化一个新的 Store 分发桥接事件。
|
|
/// </summary>
|
|
/// <param name="dispatchRecord">本次分发记录。</param>
|
|
/// <exception cref="ArgumentNullException">当 <paramref name="dispatchRecord"/> 为 <see langword="null"/> 时抛出。</exception>
|
|
public StoreDispatchedEvent(StoreDispatchRecord<TState> dispatchRecord)
|
|
{
|
|
DispatchRecord = dispatchRecord ?? throw new ArgumentNullException(nameof(dispatchRecord));
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取本次桥接对应的 Store 分发记录。
|
|
/// </summary>
|
|
public StoreDispatchRecord<TState> DispatchRecord { get; }
|
|
} |