继承自 ReSwift。
ReSwift 是一个 Swift 中单向数据流架构的 Redux 式实现。 ReSwift 帮助您分离应用程序组件的三个重要关注点:
- 状态:在 ReSwift 应用程序中,整个应用程序状态显式存储在数据结构中。 这有助于避免复杂的状态管理代码,从而更好地进行调试,并带来更多好处...
- 视图:在 ReSwift 应用程序中,视图会在状态更改时更新。 您的视图会变成当前应用状态的简单可视化。
- 状态更改:在 ReSwift 应用程序中,您只能通过操作来执行状态更改。 操作是描述状态更改的小段数据。 通过严格限制状态变化的途径,您的应用程序变得更容易理解,并且更容易与许多协作者一起工作。
前往 仓库 获取更多信息。
为了使用 ReSwift,您必须声明状态、reducer 和 store。 然后,在大多数情况下,该状态最终会遍布整个应用程序,这意味着很难保持模块像您可能希望的那样解耦。
这就是 Caesura
的用武之地。 它以这样一种方式封装了状态、reducer 和 store,使您唯一需要关心的是开发模块,而无需它们彼此依赖。 所有这些都不会失去在任何时刻停止应用程序并了解整个应用程序状态的能力。
因此,一个简单的应用程序看起来像:
查看 使用文档 获取更多信息。
还有一个可选的内置模块,可以将 ReRxSwift 的优势带入 Caesura
。
类似于 react-redux, ReRxSwift 允许您创建具有
props
和actions
的视图控制器。 视图控制器从它们的props
读取它们需要的所有数据(而不是直接从 state 中读取),并且它们通过调用actions
定义的回调来更改数据(而不是直接分发 ReSwift 操作)。 这有一些不错的优势:
- 更好地分离关注点。 更容易理解您的视图控制器做什么以及它使用什么数据。 换句话说,它促进了局部推理。
- 单元测试。 由于关注点的分离,您可以轻松地对视图控制器进行单元测试,一直到 Interface Builder 连接。
- 更好的可重用性。 重用您的视图控制器就像指定从 state 到
props
以及从 ReSwift 操作到actions
的不同映射一样简单。- 快速原型设计。 您可以轻松地使用虚拟
props
和actions
,以便获得可用的 UI 层原型。 无需编写任何应用程序的业务逻辑,您就可以以一种非常简单的方式实现演示文稿层,以便用真实状态和操作替换虚拟对象。
查看 使用文档 获取更多信息。
要使用 Swift Package Manager 将 Caesura
集成到您的项目中,请在您的 Package.swift
中指定它
// swift-tools-version:5.0
import PackageDescription
let package = Package(
name: "YourPackageName",
dependencies: [
.package(
url: "https://github.com/LucianoPolit/Caesura.git",
.upToNextMajor(from: "1.0.0")
)
],
targets: [
.target(
name: "YourTarget",
dependencies: [
"Caesura",
"CaesuraUI",
"CaesuraStandardAction",
"CaesuraMiddlewares",
"ReRxCaesura"
]
)
]
)
要使用 CocoaPods 将 Caesura
集成到您的项目中,请在您的 Podfile
中指定它
pod 'Caesura', '~> 1.0'
pod 'Caesura/Core'
pod 'Caesura/UI'
pod 'Caesura/StandardAction'
pod 'Caesura/Middlewares'
pod 'Caesura/ReRxSwift'
Luciano Polit | lucianopolit@gmail.com
Caesura
在 MIT 许可证下可用。 查看 LICENSE 文件获取更多信息。