Uno.Microsoft.UI.Reactor
0.1.0-dev.79
Prefix Reserved
dotnet add package Uno.Microsoft.UI.Reactor --version 0.1.0-dev.79
NuGet\Install-Package Uno.Microsoft.UI.Reactor -Version 0.1.0-dev.79
<PackageReference Include="Uno.Microsoft.UI.Reactor" Version="0.1.0-dev.79" />
<PackageVersion Include="Uno.Microsoft.UI.Reactor" Version="0.1.0-dev.79" />
<PackageReference Include="Uno.Microsoft.UI.Reactor" />
paket add Uno.Microsoft.UI.Reactor --version 0.1.0-dev.79
#r "nuget: Uno.Microsoft.UI.Reactor, 0.1.0-dev.79"
#:package Uno.Microsoft.UI.Reactor@0.1.0-dev.79
#addin nuget:?package=Uno.Microsoft.UI.Reactor&version=0.1.0-dev.79&prerelease
#tool nuget:?package=Uno.Microsoft.UI.Reactor&version=0.1.0-dev.79&prerelease
Uno.Microsoft.UI.Reactor
Microsoft.UI.Reactor, the functional, declarative UI framework for WinUI 3, on Uno Platform. You write components and hooks in C#, with no XAML, and the same code runs on desktop (Windows, macOS, Linux), WebAssembly, Android and iOS.
For a Windows App SDK app, use Microsoft's Microsoft.UI.Reactor package instead. This package doesn't target the Windows App SDK.
Requirements
- The .NET 10 SDK.
- Uno.Sdk with the Skia renderer (
SkiaRendererinUnoFeatures). This version of the package is built against Uno.Sdk7.0.0-dev.81; use the same Uno.Sdk version in your app.
A single-file app
Save this as Counter.cs and run dotnet run Counter.cs:
#:sdk Uno.Sdk@7.0.0-dev.81
#:package Uno.Microsoft.UI.Reactor@[x.y.z]
#:property TargetFramework=net10.0-desktop
#:property OutputType=Exe
#:property UnoSingleProject=true
#:property UnoFeatures=SkiaRenderer
#:property PublishAot=false
#:property PackAsTool=false
using Microsoft.UI.Reactor;
using Microsoft.UI.Reactor.Core;
using static Microsoft.UI.Reactor.Factories;
ReactorApp.Run<CounterApp>("Counter", width: 480, height: 360);
class CounterApp : Component
{
public override Element Render()
{
var (count, setCount) = UseState(0);
return VStack(12,
Heading($"Count: {count}"),
HStack(8,
Button("-", () => setCount(count - 1)),
Button("+", () => setCount(count + 1))
)
).Padding(24);
}
}
Replace x.y.z with this package's version. Keep the square brackets: they pin that exact version, while @x.y.z without them is only a minimum and can restore a different build.
Single-file apps run on desktop only for now.
In an Uno project
Reference the package from a single Uno project that uses the Skia renderer:
<Project Sdk="Uno.Sdk">
<PropertyGroup>
<TargetFrameworks>net10.0-desktop;net10.0-browserwasm;net10.0-android;net10.0-ios</TargetFrameworks>
<OutputType>Exe</OutputType>
<UnoSingleProject>true</UnoSingleProject>
<UnoFeatures>SkiaRenderer</UnoFeatures>
<UnoDisableHotRestartHelperGeneration>true</UnoDisableHotRestartHelperGeneration>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Uno.Microsoft.UI.Reactor" Version="x.y.z" />
</ItemGroup>
</Project>
Pin Uno.Sdk to the same version in global.json, under msbuild-sdks.
Desktop and iOS start the app with ReactorApp.Run<TRoot>(...), as above. WebAssembly and Android need a different entry point: the counter sample shows all four, and it is the simplest project to start from.
Learn more
- Reactor on Uno Platform: what works on each target, and what Uno doesn't implement yet.
- Reactor guide: components, hooks, layout and controls. It is written for Windows, but the API is the same.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0-android36.0 is compatible. net10.0-browserwasm1.0 is compatible. net10.0-desktop1.0 is compatible. net10.0-ios26.0 is compatible. |
-
net10.0-android36.0
- MessageFormat (>= 8.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.9)
- Uno.WinUI (>= 7.0.0-dev.2347)
- Uno.WinUI.Composition.Skia (>= 7.0.0-dev.2347)
- Uno.WinUI.Graphics2DSK (>= 7.0.0-dev.2347)
- Uno.WinUI.Runtime.Android (>= 7.0.0-dev.2347)
-
net10.0-browserwasm1.0
- MessageFormat (>= 8.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.9)
- Uno.WinUI (>= 7.0.0-dev.2347)
- Uno.WinUI.Composition.Skia (>= 7.0.0-dev.2347)
- Uno.WinUI.Graphics2DSK (>= 7.0.0-dev.2347)
- Uno.WinUI.Runtime.WebAssembly.Browser (>= 7.0.0-dev.2347)
-
net10.0-desktop1.0
- MessageFormat (>= 8.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.9)
- Uno.WinUI (>= 7.0.0-dev.2347)
- Uno.WinUI.Composition.Skia (>= 7.0.0-dev.2347)
- Uno.WinUI.Graphics2DSK (>= 7.0.0-dev.2347)
- Uno.WinUI.Runtime (>= 7.0.0-dev.2347)
- Uno.WinUI.Runtime.Linux.FrameBuffer (>= 7.0.0-dev.2347)
- Uno.WinUI.Runtime.MacOS (>= 7.0.0-dev.2347)
- Uno.WinUI.Runtime.Win32 (>= 7.0.0-dev.2347)
- Uno.WinUI.Runtime.X11 (>= 7.0.0-dev.2347)
-
net10.0-ios26.0
- MessageFormat (>= 8.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.9)
- Uno.WinUI (>= 7.0.0-dev.2347)
- Uno.WinUI.Composition.Skia (>= 7.0.0-dev.2347)
- Uno.WinUI.Graphics2DSK (>= 7.0.0-dev.2347)
- Uno.WinUI.Runtime.AppleUIKit (>= 7.0.0-dev.2347)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0-dev.79 | 0 | 10/28/2026 |
| 0.1.0-dev.77 | 0 | 10/28/2026 |
| 0.1.0-dev.74 | 0 | 10/27/2026 |