uno-mvux-state-basics

Create and manage mutable MVUX state with IState<T> for two-way binding.

9|1|Updated Dec 10, 2024
One-click install
npx skills add https://github.com/unoplatform/studio --skill uno-mvux-state-basics
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: uno-mvux-state-basics
Source: https://github.com/unoplatform/studio/tree/main/plugins/uno-platform-studio/skills/uno-mvux-state-basics
Command: npx skills add https://github.com/unoplatform/studio --skill uno-mvux-state-basics

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Creating and using mutable MVUX state with IState<T> to enable responsive, two-way-bound UI.

Core Features & Use Cases

  • Create and manage mutable MVUX state using IState<T> with State<T>.Empty, State<T>.Value, State.Async, and State.FromFeed.
  • Update state deterministically using UpdateAsync with pure updater functions and proper cancellation handling.
  • Enable two-way binding in MVUX views and ViewModels, ensuring UI stays in sync with application state.

Quick Start

Create a State<string> for a text field and update it through a command that calls UpdateAsync.

Frequently Asked Questions about uno-mvux-state-basics

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I enable two-way binding for form inputs using MVUX state in C#?

To enable two-way binding in MVUX, create and manage mutable state using IState<T>. This allows UI components to stay in sync with application state and reflect user input changes across views automatically.

What is the best way to update mutable MVUX state deterministically?

The best way to update mutable MVUX state is by calling UpdateAsync with pure updater functions. This ensures deterministic state transitions while handling cancellation properly during asynchronous operations.

How do I initialize an IState<T> variable for live UI updates?

You can initialize IState<T> using State<T>.Empty for a default starting value, State<T>.Value for immediate data, State.Async for asynchronous loading, or State.FromFeed to connect external data sources.

When should I use MVUX state management instead of standard reactive patterns?

Use MVUX state management when you need mutable state with two-way binding for scenarios like form input and live UI updates. It ensures state changes are deterministically reflected across views using pure updaters.

Can I use State.Async to handle asynchronous data loading in MVUX views?

Yes, State.Async supports asynchronous data loading within IState<T>. It initializes mutable MVUX state from asynchronous operations, ensuring the UI updates correctly once the data retrieval completes.

Why are my pure updater functions not triggering UI updates in MVUX?

Pure updater functions must be passed through UpdateAsync to trigger UI updates correctly. Failing to use UpdateAsync or improperly handling cancellation tokens prevents the IState<T> changes from reflecting in two-way bound views.