ReactorKit-SwiftUI 是 devxoul 的 ReactorKit 的扩展,专为与 SwiftUI 一起使用而设计。
let reactor = MyReactor() // A reactor is the same as in ReactorKit.
let view = MyView(reactor: reactor)
struct MyView: ReactorView {
var reactor: MyReactor
func body(reactor: MyReactor.ObservableObject) -> some View {
// this is called when the state updates.
VStack {
Button("Hello") {
reactor.action.onNext(.helloTapped)
}
Text(reactor.state.title)
}
}
}
ReactorKit-SwiftUI 在以下场景下非常有用
- 当您想将现有的基于 ReactorKit 的项目转换为 SwiftUI,同时保持所有业务逻辑不变时。
- 当您正在使用 RxSwift 并且想在项目中应用 SwiftUI 时。
- 当您想无缝地一起使用 ReactorKit 和 SwiftUI 时。
- Counter:SwiftUI-ReactorKit 最简单和基本的示例
- ReactorKit >= 3.0
- Swift 5
- iOS 13
- macOS 10.15
- tvOS 13.0
- watchOS 6.0
Podfile
pod 'SwiftUIReactorKit'
Package.swift
let package = Package(
name: "MyPackage",
dependencies: [
.package(url: "https://github.com/gunoooo/ReactorKit-SwiftUI.git", .upToNextMajor(from: "0.0.1"))
],
targets: [
.target(name: "MyTarget", dependencies: ["SwiftUIReactorKit"])
]
)
ReactorKit-SwiftUI 不支持 Carthage。
ReactorKit-SwiftUI 采用 MIT 许可协议。有关更多信息,请参阅 LICENSE。