RxViewModel
Model-View-ViewModel
Model-View-ViewModel
(简称 MVVM)是由 Microsoft 创建的,其定义如下
模型-视图-视图模型(MVVM)模式是一种将用户界面与底层业务逻辑隔离的应用程序模式。MVVM 属于一个称为分离呈现的图案类别。这些模式在 UI 与应用程序的其余部分之间提供清晰的分离。这提高了应用程序的可测试性,并允许应用程序及其 UI 更易于独立且容易地演变。
模型-视图-视图模型(MVVM)模式帮助您将应用程序的业务逻辑和呈现逻辑与其用户界面(UI)进行清晰的分离。在应用程序逻辑和 UI 之间保持清晰的分离有助于解决许多开发和设计问题,并且可以使应用程序更容易进行测试、维护和演变。它还可以极大地提高代码重用机会,并且允许开发人员和 UI 设计师在他们各自的应用程序部分中进行开发时更容易地协作。
它基本上增加了一个新的「分离层」,以将 MVC
模式分解成更易于管理的部分。
Cocoa 上的 MVC
总是令人痛苦,因为它总是需要很多 delegates
,通常由一个控制器(例如,当绑定 tableview 时需要一个 tableview 的代理以及还需要数据源的代理等)实现,这导致出现「大量视图控制器」的问题。
MVVM
通过一个名为 ViewModel
的「中间」类从 View
分离出 Model
。
此中间类以更干净、更简便的方式实现了对视图》(code>View)和模式》(code>Model
)的绑定,并将一些逻辑(例如如何/何时加载数据)从视图(code>View
)中分离出来,仅保留与UI相关的特定代码。
RxViewModel
RxViewModel
是MVVM
与Rx
扩展的结合
简单来说,这是一个基于ReactiveViewModel
的明目张胆的“模仿”,使用RxCocoa
。
由于ReactiveViewModel
项目已经停滞不前,而且没有Swift
或Swift 2.0
的实现,我们发现有必要在Swift
中实施类似的项目。
鉴于没有Swift
分支,且项目缺乏兴趣,我们认为最好给RxSwift
/RxCocoa
一个机会,并将其作为此反应性视图模型方法的基石。
用法
要运行示例项目,请克隆仓库,然后从示例目录中首先运行pod install
。
安装
CocoaPods
只需将以下行添加到您的Podfile中
pod "RxViewModel"
然后运行
pod install
Carthage
只需将以下内容添加到您的Cartfile
github "RxSwiftCommunity/RxViewModel"
然后运行
carthage update
特性
目前,RxViewModel
支持以下来自 ReactiveViewModel
的特性(所有这些特性)
-
didBecomeActive
-
didBecomeInactive
-
forwardSignalWhileActive
-
throttleSignalWhileInactive
作者
Esteban Torres
许可证
RxViewModel
在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。