から http://docs.reactiveui.net/en/index.html :
ReactiveUIはMVVMフレームワークであり、Reactive Extensions for .NETを使用して、モバイルまたはデスクトッププラットフォームで実行されるエレガントでテスト可能なユーザーインターフェイスを作成できます。
RxUIはReactiveExtensionsとどういうわけか異なりますか?
MVVMCross/light + RxよりもRxUIを優先する必要があるのはなぜですか?何がそんなに特別なの? RxUIはRxができないことを行うことができますか?もっと簡潔ですか?もっと居心地がいいですか?
Githubページで例を見ました https://github.com/reactiveui/ReactiveUI#a-compelling-example 。しかし、Rxだけで同じことはできませんか?
P.S.どこかにAPIドキュメントはありますか?
ここにはたくさんの質問が含まれているので、一つずつ答えていきます。
RxUIはReactiveExtensionsとどういうわけか異なりますか?
はい。 Reactive Extensions is "監視可能なシーケンスとLINQスタイルのクエリ演算子を使用して非同期およびイベントベースのプログラムを作成するためのライブラリ。"特にUIとは関係ありません。 Rxは、データストリームに対する一般的な抽象化を提供します。
RxUIはMVVMフレームワークです。つまり、 アプリにMVVMパターンを実装するのに役立つクラスのライブラリです 。
RxUIは、Rxができないことを実行できますか?もっと簡潔ですか?もっと居心地がいいですか?
それは別の目的を果たします。 Rxは一連のメソッドを提供します。これらのメソッドは、通常、アプリ内のデータを移動するのに役立ちます。 RxUIは、ユーザーインターフェイスの作成に使用されます。内部でRxを使用し、そのコンポーネントからRxタイプのAPI(つまり、 IObservble<T>
)を公開します。
たとえば、ReactiveCommandと呼ばれるReactiveUIの ICommand 実装 ThrownException
というタイプのIObservable<Exception>
というプロパティを公開します( 「一連のエラー」として)。
IObservable<T>
インターフェイスタイプは.Net基本クラスライブラリの一部ですが、文字通り、このタイプで動作するすべての便利な関数がReactiveExtensionsライブラリに含まれていることに注意してください。
しかし、Rxだけで同じことはできませんか?
いいえ、たとえば、RxはすべてのMVVMフレームワークの重要な部分であるICommand
実装を提供しないためです。
MVVMCross/light + RxよりもRxUIを優先する必要があるのはなぜですか?何がそんなに特別なの?
アプリでReactiveExtensionsを頻繁に使用する場合は、RxUI(他のMVVMフレームワークではなく)を使用することをお勧めします。これらは互いに非常によく統合されているためです。これらを組み合わせると、すぐに使用できる多くの機能が提供されます(たとえば、 ReactiveCommand または WhenAny をチェックしてください。
そうは言っても、 RxUIの作成者が述べたように :
reactiveUIを他のMVVMフレームワークと一緒に使用でき、どちらかにコミットする必要はありません。 WhenAnyなどのRxUIの多くのメソッドは、任意のオブジェクトで機能し、実行時にそれらに最適に接続する方法を決定します。
RxUIは間違いなくビュッフェテーブルであり(あなたが望むものを取りなさい!)、7コースの食事ではありません:)
そして最後に:
P.S.どこかにAPIドキュメントはありますか?
はいあります!ここを見てください: https://reactiveui.net/api/
補足として、自由に参照してください ドキュメントのリアクティブプログラミングセクション 、フレームワークの背後にある基本的な用語と概念のいくつかを説明します:)