基于 Flutter 构建的游戏引擎,提供游戏循环、组件系统、碰撞检测和输入处理等功能。
felangel/bloc
基于 BLoC 设计模式的 Dart 状态管理库,用于将界面与业务逻辑分离,主要用于 Flutter 和 AngularDart。
- Star
- 12,483
- Fork
- 3,414
- 未关闭 Issue
- 83
- 最近提交
- 昨天
这是什么?
Bloc 是一个面向 Dart 的可预测状态管理库,实现了 BLoC(Business Logic Component,业务逻辑组件)设计模式。它的目标是将界面展示与业务逻辑分离,使代码更易测试和复用。
仓库是一个包含多个子包的 monorepo。核心的 bloc 包提供 Bloc 和 Cubit 类;flutter_bloc 提供将 bloc 连接到 Flutter 界面的组件;hydrated_bloc 可在应用重启后持久化状态。其他子包包括事件并发转换器(bloc_concurrency)、单元测试工具(bloc_test)、代码检查规则(bloc_lint),以及用于撤销重做式历史记录的 replay_bloc。angular_bloc 面向 AngularDart 应用。
项目由 Felix Angelov 维护,文档位于 bloclibrary.dev,其中包含教程和迁移指南。
核心功能
- 01提供 Bloc 和 Cubit 类,用于在 Dart 代码中管理状态。
- 02包含 flutter_bloc 组件,用于将状态连接到 Flutter 界面。
- 03通过 hydrated_bloc 在应用启动之间持久化状态。
- 04提供 bloc_test 工具,便于对 bloc 进行单元测试。
- 05包含 bloc_concurrency 转换器,用于控制事件的处理方式。
适用场景
- 在 Flutter 应用中组织状态管理,使界面组件不包含业务逻辑。
- 为独立于界面的应用逻辑编写单元测试。
- 借助 hydrated_bloc 在应用重启后保留状态。
- 在 Flutter 应用与 AngularDart 网页应用之间共享 Dart 业务逻辑。
使用前须知
- 它主要面向 Dart 生态,常用于 Flutter 和 AngularDart。
标签
常见问题
- bloc 是什么?
- 基于 BLoC 设计模式的 Dart 状态管理库,用于将界面与业务逻辑分离,主要用于 Flutter 和 AngularDart。 Bloc 是一个面向 Dart 的可预测状态管理库,实现了 BLoC(Business Logic Component,业务逻辑组件)设计模式。它的目标是将界面展示与业务逻辑分离,使代码更易测试和复用。
- bloc 可以免费使用吗?用的什么许可证?
- bloc 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- bloc 还在维护吗?
- 活跃维护中。bloc 最近一次提交是在 2026年10月20日。
- bloc 适合用来做什么?
- 在 Flutter 应用中组织状态管理,使界面组件不包含业务逻辑。 为独立于界面的应用逻辑编写单元测试。 借助 hydrated_bloc 在应用重启后保留状态。 在 Flutter 应用与 AngularDart 网页应用之间共享 Dart 业务逻辑。
- 在哪里获取 bloc?
- 源代码和安装说明在 GitHub 上:https://github.com/felangel/bloc
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
1.1万1055DartMIT更新于 前天
用 Rust 编写的开源远程桌面软件,可自建服务器,是 TeamViewer 的开源替代方案。
12.6万2万RustAGPL-3.0更新于 昨天
一款免费开源的应用,无需互联网或第三方服务器,即可在局域网内向附近设备传输文件和消息。
9.5万5336DartApache-2.0更新于 4天前
精选 Flutter 库、插件、教程、文章和示例项目的资源清单,按主题分类整理。
6.2万6931Dart无许可证更新于 2个月前
一组 Flutter 插件,让 Flutter 应用可以接入 Firebase 的认证、数据库、消息推送和分析等服务。
92614126DartBSD-3-Clause更新于 10小时前
基于 Flutter 开发的跨平台电子书阅读器,支持 EPUB、MOBI 等多种格式,并内置 AI 阅读辅助功能。
8988648DartMIT更新于 5天前