一个可预测的状态管理库,有助于实现BLoC设计模式。
赞助商
以下是我们的顶级赞助商![成为赞助商]
概览
该库的目标是使_展示层_和_业务逻辑_的分离变得简单,从而便于测试和重用。
文档
迁移
示例
Dart
- 计数器 - 如何创建
CounterBloc
的示例(纯Dart)。
Flutter
- 计数器 - 如何创建
CounterBloc
来实现经典的Flutter计数器应用的示例。 - 表单验证 - 如何使用
bloc
和flutter_bloc
包来实现表单验证的示例。 - 带Stream的Bloc - 如何将
bloc
连接到Stream
并根据Stream
中的数据更新UI的示例。 - 复杂列表 - 如何使用
bloc
和flutter_bloc
管理项目列表并异步逐一删除项目的示例。 - 无限列表 - 如何使用
bloc
和flutter_bloc
包实现无限滚动列表的示例。 - 登录流程 - 如何使用
bloc
和flutter_bloc
包实现登录流程的示例。 - Firebase登录 - 如何使用
bloc
和flutter_bloc
包通过Firebase实现登录的示例。 - Github搜索 - 如何使用
bloc
和flutter_bloc
包创建Github搜索应用的示例。 - 天气 - 如何使用
bloc
和flutter_bloc
包创建天气应用的示例。该应用使用RefreshIndicator
实现"下拉刷新"以及动态主题。 - 待办事项 - 如何使用
bloc
和flutter_bloc
包创建待办事项应用的示例。 - 计时器 - 如何使用
bloc
和flutter_bloc
包创建计时器的示例。 - 购物车 - 如何基于flutter samples使用
bloc
和flutter_bloc
包创建购物车应用的示例。 - 动态表单 - 如何使用
bloc
和flutter_bloc
包实现从存储库获取数据的动态表单的示例。 - 向导 - 如何使用
bloc
和flutter_bloc
包构建多步骤向导的示例。 - Fluttersaurus - 如何使用
bloc
和flutter_bloc
包创建同义词词典应用的示例 -- 为Bytconf Flutter 2020制作。 - I/O照相亭 - 如何使用
bloc
和flutter_bloc
包创建虚拟照相亭网页应用的示例 -- 为Google I/O 2021制作。 - I/O弹球 - 如何使用
bloc
和flutter_bloc
包创建弹球网页应用的示例 -- 为Google I/O 2022制作。 - I/O全息照相亭 - 如何使用
bloc
和flutter_bloc
包创建虚拟照相亭体验的示例 -- 为Flutter Forward制作。 - I/O翻牌 - 如何使用
bloc
、flutter_bloc
和flame_bloc
包创建卡牌游戏的示例 -- 为Google I/O 2023制作。
Web
Flutter + Web
- Github搜索 - 如何创建Github搜索应用并在Flutter和AngularDart之间共享代码的示例。
文章
- Bloc 包 - 对 bloc 包的介绍,包括高级架构和示例。
- 使用 flutter_bloc 的登录教程 - 如何使用 bloc 和 flutter_bloc 包创建完整的登录流程。
- 使用 bloc 进行单元测试 - 如何对 Flutter 登录教程中创建的 bloc 进行单元测试。
- 使用 flutter_bloc 的无限列表教程 - 如何使用 bloc 和 flutter_bloc 包创建无限列表。
- 使用 bloc 共享代码 - 如何在用 Flutter 编写的移动应用程序和用 AngularDart 编写的 Web 应用程序之间共享代码。
- 使用 flutter_bloc 的天气应用教程 - 如何使用 bloc 和 flutter_bloc 包构建支持动态主题、下拉刷新和与 REST API 交互的天气应用。
- 使用 flutter_bloc 的待办事项应用教程 - 如何使用 bloc 和 flutter_bloc 包构建待办事项应用。
- 使用 flutter_bloc 的 Firebase 登录教程 - 如何使用 bloc 和 flutter_bloc 包以及 Firebase 身份验证和 Google 登录创建功能完整的登录/注册流程。
- 使用 flutter_bloc 的 Flutter 计时器教程 - 如何使用 bloc 和 flutter_bloc 包创建计时器应用。
- 使用 flutter_bloc 的 Firestore 待办事项教程 - 如何使用 bloc 和 flutter_bloc 包创建与云 Firestore 集成的待办事项应用。
书籍
- Flutter 完全参考 - 一本关于 Dart 编程语言(版本 2.10,支持空安全)和 Flutter 框架(版本 1.20)的书。它涵盖了 bloc 包(版本 6.0.3)的所有变体:bloc、flutter_bloc、hydrated_bloc、replay_bloc、bloc_test 和 cubit。
扩展
- IntelliJ - 为 IntelliJ/Android Studio 扩展了 Bloc 库的支持,并提供了为 Flutter 和 AngularDart 应用有效创建 Bloc 的工具。
- VSCode - 为 VSCode 扩展了 Bloc 库的支持,并提供了为 Flutter 和 AngularDart 应用有效创建 Bloc 的工具。
社区
通过以下由社区贡献的链接了解更多信息。
包
- Bloc.js - 由 Felix Angelov 将
bloc
状态管理库从 Dart 移植到 JavaScript。 - Firebase Auth - 由 Rody Davis 开发的 Web、移动 Firebase 身份验证插件。
- Form Bloc - 由 Giancarlo 开发的一种使用 BLoC 模式创建表单的简单方法,无需编写大量样板代码。
- Flame Bloc - 由 Flame Engine 开发的 Flame 游戏引擎的 Bloc 集成。
视频教程
- Bloc 库:基础和进阶 🚀 - Felix Angelov 在 Flutter Europe 上关于 bloc 库基础知识的演讲。
- Flutter Bloc 库教程 - Reso Coder 对 Bloc 库的介绍。
- Flutter Youtube 搜索 - Reso Coder 讲解如何使用 bloc 和 flutter_bloc 包构建与 API 交互的 Youtube 搜索应用。
- Flutter Bloc - 自动查找 - v0.20 (及以上版本),更新教程 - Reso Coder 的 Flutter Bloc 包更新教程。
- 使用 flutter_bloc 实现动态主题 - Reso Coder 讲解如何使用 flutter_bloc 包实现动态主题。
- 在 Flutter 中持久化 Bloc 状态 - Reso Coder 讲解如何使用 hydrated_bloc 包自动持久化应用状态。
- 状态管理基础 - Techie Blossom 使用 flutter_bloc 包介绍状态管理。
- Flutter 足球运动员搜索 - Techie Blossom 讲解如何使用 bloc 和 flutter_bloc 包构建与 API 交互的足球运动员搜索应用。
- 学习 Flutter Bloc 包 - Robert Brunhage 现场学习 flutter_bloc 包。
- Bloc 测试教程 - Reso Coder 讲解如何使用 bloc_test 包对 bloc 进行单元测试。
- Bloc - 从零到英雄 - Flutterly 的播放列表,包括开始使用 bloc 所需的一切。
- Bloc (完整课程,11+ 小时) - Flutter 状态管理课程 - Vandad Nahavandipoor 的 11+ 小时视频教程,讲解 Bloc 和 Flutter Bloc。在这个视频中,你将学习如何使用 Bloc 和 Firebase 作为后端创建完全成熟的生产就绪应用。
书面资源
- DevonFw Flutter 指南 - Sebastian Faust 编写的使用 Flutter 和 BLoC 构建结构化和可扩展应用的指南。
- 使用 Google 的 Flutter 框架开发大规模参考应用 - Sebastian Faust 撰写的科学论文,描述如何使用 BLoC 构建大规模 Flutter 应用。
扩展
- VSCode 的功能脚手架 - Kiritchouk Clément 受 Reso Coder 的清洁架构教程启发开发的 VSCode 扩展,可帮助快速搭建功能脚手架。