索引
特性
单向数据流
继承自ReSwift。
ReSwift是Swift中单向数据流架构的Redux实现。ReSwift帮助您将您的应用组件的三个重要方面分开
- 状态:在ReSwift应用中,整个应用状态明确地存储在一个数据结构中。这有助于避免复杂的状态管理代码,使调试变得更好,并且还有许多其他好处...
- 视图:在ReSwift应用中,当状态变化时,您的视图会更新。您的视图成为当前应用状态简单的可视化。
- 状态变化:在ReSwift应用中,您只能通过动作执行状态变化。动作是描述状态变化的少量数据。通过大幅限制状态可更改的方式,您的应用变得更容易理解,并且与多个合作者一起工作的变得更加容易。
访问存储库获取更多信息。
模块化
为了使用ReSwift,您必须声明一个状态、一个reducer和一个store。然后,在大多数情况下,状态会扩散到整个应用中,这意味着难以让模块保持像您可能希望的那样解耦。
这时,Caesura就派上用场了。它以这种方式封装状态、reducer和store,使您只需关注开发模块,模块之间不相互依赖。所有这一切都不失去在任何时候停止应用并了解整个应用状态的能力。
所以,一个简单的应用看起来像这样
查看使用文档获取更多信息。
ReRxSwift整合
还有一个可选的内置模块可以将ReRxSwift(《ReNxSwift》)的益处引入到《Caesura》中。
类似于react-redux,ReRxSwift允许您创建具有
props
和actions
的视图控制器。视图控制器从它们的props
(而不是直接从状态)读取所有所需数据,并通过调用actions
定义的回调来更改数据(而不是直接分发ReSwift动作)。这有一些很好的优势
- 更好的关注分离。理解视图控制器做什么以及它使用哪些数据变得更加容易。换句话说,它促进了局部推理。
- 单元测试。由于关注点的分离,您可以轻松地对视图控制器进行单元测试,甚至可以测试到Interface Builder连接。
- 更好的可重用性。重用您的视图控制器就像指定从状态到
props
以及从ReSwift动作到actions
的不同映射一样简单。- 快速原型设计。您可以使用虚拟的
props
和actions
轻松使用假数据,从而得到一个可运行的UI层原型。在不编写任何应用程序的业务逻辑的情况下,您可以以非常简单的方式实现表示层,从而可以用真实的状态和动作替换虚拟数据。
查看用法文档以获取更多信息。
要求
- Xcode 10.0+
- Swift 5.0+
安装
Swift包管理器
要使用 Swift 包管理器 将 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
要使用 CocoaPods 将 Caesura
集成到项目中,请在您的 Podfile
中指定它。
pod 'Caesura', '~> 1.0'
pod 'Caesura/Core'
pod 'Caesura/UI'
pod 'Caesura/StandardAction'
pod 'Caesura/Middlewares'
pod 'Caesura/ReRxSwift'
沟通
作者
Luciano Polit | [email protected]
许可
Caesura
可在MIT许可下使用。有关更多信息,请参阅LICENSE文件。