用途
Reactor 是一个受 React 启发的 WinUI 3 函数式投影框架,用于创建 WinUI 3 桌面应用。开发者编写返回轻量元素描述的函数,协调器对比新旧元素树并更新真实的 WinUI 控件,状态变化会自动触发重新渲染。按资料说明,它不涉及 XAML、数据绑定和 ViewModel。
本条目对应的是一份技能文档(SKILL.md),用于指导代理在 Reactor 环境下工作。资料明确说明:这是遗留的单文件技能,若具备插件 SDK,应安装或加载 plugins/reactor/ 下的 reactor 插件(NuGet 包中位于 agentkit/plugins/reactor/),该插件把内容拆分为更聚焦的单技能文件,加载成本显著低于本单文件版本。
主要能力
- 声明式 C# 组件:支持类组件(继承 Component,实现 Render)、内联函数组件、Memo 记忆化组件,以及通过 record 定义强类型 props。
- Hooks:文档列出 UseState 等钩子,并另有专门子技能覆盖异步数据(UseResource、UseMutation、UseInfiniteResource、Pending)、命令(Command、StandardCommand、UseCommand、CommandHost)、导航(UseNavigation、NavigationHost、NavigationView、TabView)、表单校验(UseValidationContext、FormField、MaskEngine、InputFormatter)、输入手势与焦点(OnPan、OnPinch、OnRotate、OnDragStarting、UseElementFocus)等。
- 原生与第三方控件包装:通过 [GenerateReactorWrapper] 源生成器,为 Reactor 没有内置工厂的控件自动生成元素、描述符、注册和同名工厂。
- 图表与数据可视化:charts 子技能覆盖图表类型选择(含 donut、TreeChart、ForceGraph)、图表 DSL 以及 LabelView / XTickLabelView / YTickLabelView 扩展点。
- 配套工具:mur CLI 提供 ---skill、---api、---regen-api 以及 mur check(本质是 dotnet build,附技能指针与“→ try:”建议)等命令。
- 子技能与配方:包含 async、design、commanding、navigation、forms、input、charts、dsl-reference、devtools 等文档,以及 recipes 目录下可直接粘贴的单文件示例(如 list-add-delete、sidebar-nav、form-with-validation、async-fetch-list、themed-card、canvas-positioning、named-styles、calendar-multiselect)。
使用方式
资料区分两种模式:Selfhost(在 Reactor 源码克隆内,src/Reactor/Reactor.csproj 存在)与 Consumer(项目依赖 Microsoft.UI.Reactor)。Selfhost 需先构建 Reactor.Cli,再运行 mur pack-local 生成本地包;克隆外的消费者项目需在项目旁放置 nuget.config 指向克隆的 local-nupkgs 绝对路径。此外可通过 dotnet new reactor 模板创建项目,模板包含 reactor-mvu、reactor-navview、reactor-tabview 等短名称。文档还给出 .csproj 配置、必需的 using 指令集合,以及 ReactorApp.Run 的组件根与内联渲染两种入口写法。
适用场景
适合以 C# 声明式方式构建 WinUI 3 桌面应用、需要组件化与状态驱动重渲染、需要包装自定义或第三方控件、需要数据可视化,以及希望借助代理技能文档与 mur check 快速迭代构建错误的开发场景。
限制
- 本条目资料为技能说明文档,未提供定价、收费、性能指标或效果承诺等信息。
- 单文件 .cs 构建不会加载分析器,需使用 .csproj 才能获得分析器覆盖。
- 文档推荐的插件加载路径在部分环境中不可用,此时才使用本遗留单文件技能。
- 资料未说明支持的操作系统版本范围、许可条款与版本支持策略,暂未提供。