使用 Apple 的 Combine 框架实现的 ´BLoC´(业务逻辑组件)。
BLoC 是一种业务逻辑层抽象,您在其中输入 Event
(事件)并输出 State
(状态)。这种抽象有助于构建遵循单向数据流和具有单一数据源的响应式应用程序。来自 CombineBloc 包的 Bloc
是一个复合对象,它具有一个接收 Event
的 Subscriber
(订阅者)和一个发布 State
的 Publisher
(发布者)。每次 Subscriber
接收到新的 Event
时,都会在 Bloc 内部调用一个闭包。此闭包可以通过 Publisher
发出一个新的 State
。
关键点是
此软件包的灵感来源于 Paolo Soares 在 2018 年 DartConf 上提出的 BLoC 概念,以及 Felix Angelov 的 Flutter Bloc 状态管理库。
将此项目添加到您的 Package.swift
中
import CombineBloc
let package = Package(
dependencies: [
.Package(url: "https://github.com/wjuniorgit/combine-bloc", from: "0.2.0"),
],
)
此软件包实现了三个用例示例
enum CounterEvent: Equatable {
case increment
case decrement
}
struct CounterState: Equatable {
let count: Int
}
final class CounterBloc: Bloc<CounterEvent, CounterState> {
init() {
super.init(initialValue: CounterState(count: 0)) {
event, state, emit in
switch event {
case .increment:
emit(CounterState(count: state.count + 1))
case .decrement:
emit(CounterState(count: state.count - 1))
}
}
}
}
Wellington Soares
根据 MIT 许可证分发。有关更多信息,请参阅 LICENSE
。