2016-07-17 11 views
0

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?

+0

Diese Frage könnte für Sie interessant sein: https://stackoverflow.com/questions/34727584/reactiveui-rxui-vs-reactive-extensions – pmbanka

+0

Dies ist genau das, was ich gesucht habe .. – TheDeveloper

Antwort

3

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.

+0

Gibt es eine bestimmte Umstände, bei denen reaktive UI sinnvoller ist? – TheDeveloper

+0

@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

+0

[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