简单的BLOC代码样本--Flutter设计模式

155 阅读1分钟

洛克的概念。

  1. 创造事件
  2. 将事件传递给BLOC
  3. BLOC返回状态。

lib/counter_event.dart

创建事件

abstract class CounterEvent {}
class IncrementEvent extends CounterEvent {}
class DecrementEvent extends CounterEvent {}

lib/counter_bloc.dart

将事件传递给Bloc

import 'dart:async'; 
class CounterBloc {  
int _counter = 0;   
// Cretae Stream Controller for sink data to bloc
final _counterStateController = 
Stream
// For state, exposing only a stream which outputs data  Stream<int> get 
// Cretae Second Stream Controller for sink event to bloc
final _counterEventController = StreamController<CounterEvent>();  
// For events, exposing only a sink which is an input 
Sink<CounterEvent> get 
-------- // Cretae Constructor
// Whenever there is a new event, we want to map it to a new state 
--------  // map it to new state
void _mapEventToState(CounterEvent event) 
 }
--------
void dispose() {                      // dispose StreamController

lib/main.dart

Bloc返回状态。

importpackage:bloc_vanilla_tut/counter_bloc.dart’;
void main() => runApp(MyApp()); 
class MyApp extends StatelessWidget { 
class _MyHomePageState extends State<MyHomePage> { 
final _bloc = CounterBloc();
 @override Widget build(BuildContext context) { 
//StreamBuilder for UI ,without setState
StreamBuilder( stream: 


Simple BLOC Code Sample- Flutter Design Pattern最初发表于Nerd For Techon Medium,在那里人们通过强调和回应这个故事继续对话。