一个专为 TypeScript 设计的工具函数库,同时支持 data-first 与 data-last 调用方式。
ReactiveX/RxSwift
Swift 版 Reactive Extensions(Rx)实现,用 Observable 序列组合异步事件与数据流。
- Star
- 24,627
- Fork
- 4,147
- 未关闭 Issue
- 19
- 最近提交
- 2个月前
这是什么?
RxSwift 将 ReactiveX 的响应式编程模型引入 Swift。它把异步任务、UI 事件、KVO 观察以及其他数据流统一抽象为 Observable 序列,并可通过丰富的操作符进行转换、过滤和组合,再订阅其值与完成事件。
项目由多个模块组成。RxSwift 是核心模块,没有外部依赖。RxCocoa 提供面向 iOS、macOS、tvOS 和 watchOS 的 Cocoa 扩展,例如 UIKit 和 AppKit 控件的绑定,以及 Driver 等共享序列和 Trait。RxRelay 提供 PublishRelay、BehaviorRelay 和 ReplayRelay;RxTest 与 RxBlocking 则用于测试基于 Rx 的代码。
可通过 Swift Package Manager、Carthage、XCFrameworks 或 git submodule 安装。仓库附带示例应用,并提供入门、Trait、单元测试和常见问题等文档。
核心功能
- 01Observable 序列统一处理异步操作、UI 事件和 KVO 数据流。
- 02提供大量操作符用于转换、过滤和组合数据流。
- 03RxCocoa 为 Apple 平台 UI 框架提供绑定和共享序列。
- 04RxRelay 提供基于 Subject 封装的 PublishRelay、BehaviorRelay 和 ReplayRelay。
- 05RxTest 与 RxBlocking 支持对 Rx 代码进行测试。
- 06支持通过 Swift Package Manager、Carthage 或 XCFrameworks 安装。
适用场景
- 在 iOS 应用中对搜索输入做防抖处理后将网络结果绑定到表格视图。
- 将多个异步 API 调用组合为一条响应式处理链。
- 在 MVVM 架构中,根据用户输入和模型变化驱动界面状态。
- 使用 RxTest 为异步数据流逻辑编写单元测试。
快速上手
- 1
在 Package.swift 中添加 RxSwift 依赖
- 2
使用 Swift Package Manager 构建项目
swift build
使用前须知
- README 提到一个尚未解决的 Swift Package Manager 交叉依赖问题(SR-12303),可能影响构建。
收录于专题
标签
常见问题
- RxSwift 是什么?
- Swift 版 Reactive Extensions(Rx)实现,用 Observable 序列组合异步事件与数据流。 RxSwift 将 ReactiveX 的响应式编程模型引入 Swift。它把异步任务、UI 事件、KVO 观察以及其他数据流统一抽象为 Observable 序列,并可通过丰富的操作符进行转换、过滤和组合,再订阅其值与完成事件。
- RxSwift 可以免费使用吗?用的什么许可证?
- RxSwift 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- RxSwift 还在维护吗?
- 半年内有更新。RxSwift 最近一次提交是在 2026年9月4日。
- RxSwift 适合用来做什么?
- 在 iOS 应用中对搜索输入做防抖处理后将网络结果绑定到表格视图。 将多个异步 API 调用组合为一条响应式处理链。 在 MVVM 架构中,根据用户输入和模型变化驱动界面状态。 使用 RxTest 为异步数据流逻辑编写单元测试。
- RxSwift 怎么安装和运行?
- 在 Package.swift 中添加 RxSwift 依赖 使用 Swift Package Manager 构建项目: swift build
- 在哪里获取 RxSwift?
- 源代码和安装说明在 GitHub 上:https://github.com/ReactiveX/RxSwift
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
一个 OCaml 库,用于构建输入变化时能高效增量更新的计算。
Java 虚拟机上的 Reactive Extensions 实现,用可观察的数据序列编排异步和事件驱动程序。
面向 JavaScript 和 TypeScript 应用的简洁、可扩展状态管理库,自动追踪依赖。
一个响应式 Python 笔记本,自动重算依赖单元格,以纯 .py 文件存储,可作为脚本运行或部署为应用。