Proposal: Reactor — React-style declarative UI framework for MAUI (next to Comet)#297
Draft
simonrozsival wants to merge 1 commit into
Draft
Proposal: Reactor — React-style declarative UI framework for MAUI (next to Comet)#297simonrozsival wants to merge 1 commit into
simonrozsival wants to merge 1 commit into
Conversation
Adds a proposal document (src/Reactor/README.md) for Reactor, a React-style declarative UI framework (virtual element tree + hooks + reconciler) ported from WinUI 3 (microsoft/microsoft-ui-reactor). Proposal only: no framework source is included, placing it as a sibling to Comet. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
|
One difference I want to make sure is understood when comparing Comet to others is that it bypasses Microsoft.Maui.Controls and directly implements ITextButton.
How would this adoption of Microsoft.UI.Reactor interact with the native controls? If I'm reading correctly it's more like https://github.com/adospace/reactorui-maui which wraps Microsoft.Maui.Controls so instead of losing a layer like Comet you've gained a layer? Re: Yoga - would it be possible to have it shared across .NET frameworks/experiences instead of having a new one for every experiment? https://github.com/dotnet/maui-labs/tree/main/src/Comet/src/Comet.Layout.Yoga |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Proposal: host Reactor as an experimental MAUI UI framework, next to Comet
This is a draft proposal PR. It adds a single document —
src/Reactor/README.md— placing Reactor as a sibling product to Comet. It deliberately contains no framework source code yet; it's meant to start a conversation about whether/how to host the experiment here.What is Reactor?
A React-style declarative UI framework for C#: UI is an immutable virtual element tree, state is managed with hooks (
UseState,UseEffect,UseReducer, …), and a reconciler diffs successive trees and patches only what changed on real native controls. It originates from microsoft/microsoft-ui-reactor (WinUI 3).An external PoC ran this unchanged counter source on Mac Catalyst via a MAUI backend, validating that the hook/state engine and reconciler are platform-neutral:
Why maui-labs / why next to Comet
maui-labs already hosts Comet, an experimental declarative C# UI framework for MAUI, so it's the natural home for a second one. Reactor and Comet are complementary mental models (React hooks + reconciler vs. MVU + signals), and both care about Yoga/Flexbox layout.
What this PR contains
src/Reactor/README.md— the proposal (positioning, proposed package/folder layout, open questions). No source frommicrosoft/microsoft-ui-reactor.Suggested follow-up (not in this PR, to avoid README conflicts)
A
Reactor (proposal)entry could be added to the root Products list, immediately after the Comet section:Open questions for maintainers
Microsoft.UI.Reactor, or rebrand for MAUI (Microsoft.Maui.Reactor/Reactor)?Feedback welcome before any framework code lands.