搜索分类、插件与代码仓

插件详情v9.1.1

flutter_bloc

Flutter 小部件,可轻松实现 BLoC(业务逻辑组件)设计模式。专为与 bloc 状态管理包一起使用而构建。

AndroidiOSWebmacOSWindowsLinux
近 30 天下载
228万
喜欢数
8090
Pub 分数
160

安装插件

flutter pub add flutter_bloc

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

Flutter_Bloc 是一个 Flutter 包,可简化 BLoC(业务逻辑组件)设计模式的实现,促进 UI 与业务逻辑之间的清晰分离。它与 bloc 状态管理库无缝集成,通过流和事件实现响应式状态更新。该包提供了 BlocBuilder、BlocProvider 和 Cubit 等小部件,以高效地管理应用中的状态。专为可扩展性和可测试性而设计,支持所有主要平台,包括 Android、iOS、Web、macOS、Windows 和 Linux。

适合场景

  • 大型应用中的状态管理
  • 基于状态变化的响应式 UI 更新
  • 将业务逻辑与用户界面分离
  • 测试复杂状态转换
  • 构建可重用的有状态组件

主要特点

  • 基于流的状态处理
  • 用于状态同步的内置小部件
  • 与 bloc 库的轻松集成
  • 同时支持 Bloc 和 Cubit 模式
  • 跨平台兼容性

适合对象

  • 使用 BLoC 模式的开发者
  • 需要可预测状态流的应用程序
  • 注重可测试性和可维护性的团队
  • 具有复杂状态逻辑的项目

使用建议

  • 初学者的学习曲线更陡峭
  • 需要理解流和事件
  • 可能为简单用例引入样板代码
  • 不太适合非常小或静态的应用

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

Bloc

build codecov Star on Github style: bloc lint Flutter Website Awesome Flutter Flutter Samples License: MIT Discord Bloc Library


A predictable state management library that helps implement the BLoC design pattern.

Package Pub
angular_bloc pub package
bloc pub package
bloc_concurrency pub package
bloc_lint pub package
bloc_test pub package
bloc_tools pub package
flutter_bloc pub package
hydrated_bloc pub package
replay_bloc pub package

Sponsors

Our top sponsors are shown below! [Become a Sponsor]


Overview

Bloc Architecture

The goal of this library is to make it easy to separate presentation from business logic, facilitating testability and reusability.

Documentation

Migration

Examples

Dart
  • Counter - an example of how to create a CounterBloc (pure dart).
Flutter
  • Counter - an example of how to create a CounterBloc to implement the classic Flutter Counter app.
  • Form Validation - an example of how to use the bloc and flutter_bloc packages to implement form validation.
  • Bloc with Stream - an example of how to hook up a bloc to a Stream and update the UI in response to data from the Stream.
  • Complex List - an example of how to manage a list of items and asynchronously delete items one at a time using bloc and flutter_bloc.
  • Infinite List - an example of how to use the bloc and flutter_bloc packages to implement an infinite scrolling list.
  • Login Flow - an example of how to use the bloc and flutter_bloc packages to implement a Login Flow.
  • Firebase Login - an example of how to use the bloc and flutter_bloc packages to implement login via Firebase.
  • Github Search - an example of how to create a Github Search Application using the bloc and flutter_bloc packages.
  • Weather - an example of how to create a Weather Application using the bloc and flutter_bloc packages. The app uses a RefreshIndicator to implement "pull-to-refresh" as well as dynamic theming.
  • Todos - an example of how to create a Todos Application using the bloc and flutter_bloc packages.
  • Timer - an example of how to create a Timer using the bloc and flutter_bloc packages.
  • Shopping Cart - an example of how to create a Shopping Cart Application using the bloc and flutter_bloc packages based on flutter samples.
  • Dynamic Form - an example of how to use the bloc and flutter_bloc packages to implement a dynamic form which pulls data from a repository.
  • Wizard - an example of how to build a multi-step wizard using the bloc and flutter_bloc packages.
  • Bloc Concurrency Visualizer - an example of visualizing the various bloc_concurrency transformers.
  • Fluttersaurus - an example of how to use the bloc and flutter_bloc packages to create a thesaurus app -- made for Bytconf Flutter 2020.
  • I/O Photo Booth - an example of how to use the bloc and flutter_bloc packages to create a virtual photo booth web app -- made for Google I/O 2021.
  • I/O Pinball - an example of how to use the bloc and flutter_bloc packages to create a pinball web app -- made for Google I/O 2022.
  • I/O Holobooth - an example of how to use the bloc and flutter_bloc packages to create a virtual photobooth experience -- made for Flutter Forward.
  • I/O Flip - an example of how to use the bloc, flutter_bloc, and flame_bloc packages to create a card game -- made for Google I/O 2023.
Web
  • Counter - an example of how to use a CounterBloc in an AngularDart app.
  • Github Search - an example of how to create a Github Search Application using the bloc and angular_bloc packages.
Flutter + Web
  • Github Search - an example of how to create a Github Search Application and share code between Flutter and AngularDart.

Articles

Books

  • Flutter Complete Reference - A book about the Dart programming language (version 2.10, with null safety support) and the Flutter framework (version 1.20). It covers the bloc package (version 6.0.3) in all flavors: bloc, flutter_bloc hydrated_bloc, replay_bloc, bloc_test and cubit.

Extensions

  • IntelliJ - extends IntelliJ/Android Studio with support for the Bloc library and provides tools for effectively creating Blocs for both Flutter and AngularDart apps.
  • VSCode - extends VSCode with support for the Bloc library and provides tools for effectively creating Blocs for both Flutter and AngularDart apps.

Community

Learn more at the following links, which have been contributed by the community.

Packages
Video Tutorials
Written Resources
Extensions

Maintainers

所属分类

依赖

依赖清单 2 项

源码仓库

使用此插件的项目

所在榜单