Repolode
felangel

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 数据每日更新。

相关项目