원클릭으로
uno-mvux-listfeed
Create and use IListFeed<T> for reactive collections in MVUX.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Create and use IListFeed<T> for reactive collections in MVUX.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Create and use commands in MVUX for user interactions.
Create and use IFeed<T> for async data in MVUX.
Display async feed data with FeedView control.
Create and use IListState<T> for mutable reactive collections in MVUX.
Use messaging to sync MVUX states with entity changes.
Understand MVUX (Model-View-Update-eXtended) architecture in Uno Platform.
| name | uno-mvux-listfeed |
| description | Create and use IListFeed<T> for reactive collections in MVUX. |
| when_to_use | Use when loading a list of items from a service or API, displaying collections in `ListView`, `GridView`, or `ItemsRepeater`, filtering list data reactively, or choosing between `IListFeed<T>` (read-only) and `IListState<T>` (mutable). |
| metadata | {"author":"uno-platform","version":"2.3","category":"mvux"} |
Docs lookup: call
uno_platform_docs_search(...)first, thenuno_platform_docs_fetch(sourcePath="…")using thesourcePathfield from a result (a relative.mdpath; add the result'sanchorfor a section). Never pass a URL, a.htmllink, or a hand-built path.
Search for and fetch the documentation:
uno_platform_docs_search("MVUX ListFeed reactive collection IListFeed")
Primary documentation pages:
external/uno.extensions/doc/Reference/Reactive/listfeed.mdexternal/uno.extensions/doc/Learn/Mvux/Walkthrough/ListFeed.howto.mdFetch the full reference:
uno_platform_docs_fetch(sourcePath="external/uno.extensions/doc/Reference/Reactive/listfeed.md")
From the fetched docs, the key factory methods on the ListFeed static class:
ListFeed.Async(...) — from a method returning Task<IImmutableList<T>>ListFeed.AsyncEnumerable(...) — from an IAsyncEnumerable<IImmutableList<T>>ListFeed.PaginatedAsync(...) — for paginated/infinite scroll (see uno-mvux-pagination skill)The reference page covers operators like Where, Select, and AsFeed. These operate on individual items in the collection.
For step-by-step examples:
uno_platform_docs_fetch(sourcePath="external/uno.extensions/doc/Learn/Mvux/Walkthrough/ListFeed.howto.md")
This covers loading a list, showing it with FeedView, filtering with Where, and when to use feeds vs states.
The how-to page shows how to bind IListFeed<T> to ListView via FeedView and access items through {Binding Data}.
IListFeed<T> is read-only — use IListState<T> for add/remove/updateValueTask<IImmutableList<T>> (from System.Collections.Immutable)Where and Select work on individual items, not the list itselfIListFeed<T> when data is pulled from a service and is read-onlyIListState<T> when you need to edit the collection client-sideAll item types used in IListFeed<T> MUST support key equality via Uno.Extensions.Equality.IKeyEquatable<T>. Without key equality, MVUX cannot distinguish between a modified entity and a completely different one, causing full list re-renders instead of granular item updates (flickering, lost scroll position, broken animations).
For partial record types, key equality is auto-generated when the record has a property named Id or Key:
public partial record Person(Guid Id, string Name, int Age);
// IKeyEquatable<Person> is generated automatically — Id is the key
Use [Key] attribute when the key property has a different name, or for composite keys:
public partial record OrderLine(
[property: Key] Guid OrderId,
[property: Key] int LineNumber,
string Product,
decimal Price);
Either Uno.Extensions.Equality.KeyAttribute or System.ComponentModel.DataAnnotations.KeyAttribute can be used.
Configure which property names are auto-detected as keys:
[assembly: ImplicitKeyEquality("Id", "Key", "EntityId")]
If auto-generation causes issues on a specific type:
[ImplicitKeys(IsEnabled = false)]
public partial record MyItem(Guid Id, string Name);
partial record (or manually implement IKeyEquatable<T>)KeyEquals returns true when two instances represent the same entity, even if other properties differ