搜尋分類、套件與程式碼儲存庫

套件詳情v9.2.1

bloc

一個可預測的狀態管理庫,有助於實現 BLoC(業務邏輯元件)設計模式。

AndroidiOSWebmacOSWindowsLinux
近 30 天下載
245萬
喜歡數
3220
Pub 分數
160

安裝套件

flutter pub add bloc

套件介紹

根據套件公開資料產生的選型評估,僅供參考。

Bloc 是一個用於 Flutter 的狀態管理程式庫,實作了 BLoC(業務邏輯元件)設計模式,促進可預測且可測試的狀態變更。它將業務邏輯與 UI 分離,讓複雜應用狀態的管理變得更容易。透過使用串流和接收器,Bloc 能有效處理非同步事件與狀態轉換。它支援熱重新載入,並能良好地整合其他 Flutter 工具。此程式庫廣泛應用於可擴展、可維護的應用程式。

適用情境

  • 管理複雜的應用程式狀態
  • 處理使用者與非同步操作的互動
  • 將使用者介面與業務邏輯分離
  • 建構可擴展的 Flutter 應用程式
  • 測試狀態轉換
  • 跨平台重用業務邏輯

主要特色

  • 基於流的狀態管理
  • 可預測的狀態轉換
  • 與 Flutter 的 widget 樹整合
  • 對熱重載的支援
  • 全面的測試功能
  • 關注點的清晰分離

適合對象

  • 大規模 Flutter 應用
  • 需要可維護代碼的團隊
  • 使用響應式程式設計的開發者
  • 需要強大狀態管理的專案
  • 具有複雜工作流程的應用程式
  • 跨平台開發

使用建議

  • 初學者的學習曲線更陡峭
  • 需要理解流和接收器
  • 比更簡單的解決方案有更多樣板程式碼
  • 對於小型應用來說可能過度複雜
  • 需要仔細的架構設計以避免複雜性
  • 依賴外部套件(例如 equatable)以實現值相等性

原始 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

所屬分類

依賴

依賴清單 1 項

原始碼儲存庫

使用此套件的專案

所在榜單