RxLens 0.1.2

RxLens 0.1.2

测试已测试
语言语言 SwiftSwift
许可 MIT
发布最后发布2016年11月
SwiftSwift 版本3.0
SPM支持 SPM

Valentin Knabel 维护。



RxLens 0.1.2

RxLens

使数据结构中实体的属性能够进行响应式读取和写时复制访问。

请查看生成的文档,请访问 vknabel.github.io/RxLens

介绍

首先我们需要声明我们的数据结构和相应的镜头,用于我们的属性。关于镜头的解释可以在 Chris Eidhof 的这篇 博客文章 中找到。

struct Person: Equatable {
    let name: String

    static var name: Lens<Person, String> {
        return Lens(
            from: { $0.name },
            to: { name, _ in Person(name: name) }
        )
    }
}

镜头主题

您可以创建一个只会反映名称更改的主题,并允许推送新的名称。

let personBehavior = BehaviorSubject(value: Person(name: "Valentin Knabel"))
let nameSubject = LensSubject(subject: personBehavior, lens: Person.name)

算子

以下算子将使用以下主题进行定义。

let personSubject = PublishSubject<Person>()

首先,您可以使用您的镜头通过 Observable.from(_:) 访问数据结构中的属性。

let nameSubject = personSubject.asObservable().from(Person.name)

此外,您还可以使用 Observer.to(_:, with:) 只观察属性的更改。

let nameObserver = personSubject.asObserver().to(Person.name, with: Person(name: "Initial"))

安装

RxLens 是一个仅支持 Swift 的项目,并支持 Swift Package ManagerCocoaPods

Swift 包管理器

import PackageDescription

let package = Package(
    name: "YourPackage",
    dependencies: [
        .Package(url: "https://github.com/vknabel/RxLens.git", majorVersion: 1)
    ]
)

CocoaPods

source 'https://github.com/CocoaPods/Specs.git'
use_frameworks!

pod 'RxLens', '~> 0.1'

作者

Valentin Knabel,[邮箱地址隐藏]

许可

EasyInject 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。