Ich habe eine Frage zu Xamarin Formen. Sind reaktive Erweiterungen nur eine Erweiterung der vorhandenen .net-Bibliothek? werden alle mvvm-Frameworks (FreshMvvm, MvvmCross, MvvmLight) unterstützt? Oder ist es ein neues MVVM-Framework?Xamarin Forms: Ist Reaktive Erweiterungen (Rx) ein Framework, das MVVM-Muster ersetzt?
Antwort
Ich kann nicht beantworten, wenn alle MVVM-Frameworks Rx unterstützen, aber ich kann definitiv sagen, dass Rx kein Ersatz für MVVM ist und Sie es sicherlich kein MVVM-Framework nennen würden.
Rx ist ein Framework zum Erstellen von Sammlungen von Werten, die (wie Ereignisse) gepushed werden. Es kann sicherlich in einem MVVM-Framework verwendet werden, auch hier können Ereignisse verwendet werden.
Hier ist ein kleines Beispiel Rx der Verwendung eines Ereignisses zu konsumieren:
void Main()
{
var foo = new Foo();
var bars = Observable.FromEventPattern<int>(h => foo.Bar += h, h => foo.Bar -= h);
var subsciption = bars.Subscribe(ep => Console.WriteLine(ep.EventArgs));
foo.OnBar(42);
}
public class Foo
{
public event EventHandler<int> Bar;
public void OnBar(int i)
{
this.Bar?.Invoke(this, i);
}
}
Diese 42
an die Konsole schreiben.
Aber ich kann dies tun:
var query =
from b in bars
where b.EventArgs > 21
select b.EventArgs * 2;
var subsciption = query.Subscribe(i => Console.WriteLine(i));
foo.OnBar(42);
foo.OnBar(7);
foo.OnBar(20);
foo.OnBar(21);
foo.OnBar(22);
Und jetzt habe ich eine komplexere Abfrage, die nur 84
& & 44
an die Konsole schreiben.
Diese Art von Sache kann in MVVM-Frameworks verwendet werden, um sie leistungsfähiger zu machen.
Und ein hervorragendes Beispiel für ein MVVM-Framework, das Rx stark nutzt, ist http://reactiveui.net/. Probieren Sie es aus.
Gibt es eine bestimmte Umstände, bei denen reaktive UI sinnvoller ist? – TheDeveloper
@AzharAli - macht mehr Sinn als was? Mehr Sinn als mit Rx? Wenn Sie eine MVVM benötigen. Sinnvoller als ein anderer MVVM? Wenn Sie mit Rx vertraut sind, wäre es eine fabelhafte Wahl. Kannst du deine Frage klären? – Enigmativity
[Hier ist ein detaillierter Artikel] (http://fullstackmark.com/post/5/a-simple-vocabelly-app-using-reactiveui-and-xamarin-forms), der MVVM mit ReactiveUI und Xamarin Forms verwendet. – mmacneil007
Diese Frage könnte für Sie interessant sein: https://stackoverflow.com/questions/34727584/reactiveui-rxui-vs-reactive-extensions – pmbanka
Dies ist genau das, was ich gesucht habe .. – TheDeveloper