dart

FlutterDojo设计之道—状态管理之路(三)

拈花ヽ惹草 提交于 2020-09-27 13:09:24
  Dart作为一个现代化的编程语言,吸收了很多语言的特点,特别是响应式编程的风格。   通过Dart提供的Stream机制,Flutter可以很轻松的构建响应式的编程方式,同时也让跨页面、跨Widget的数据管理问题迎刃而解。   Flutter的响应式编程,具有下面几个特点。   数据的管理,围绕Stream进行,通过Stream的sink和listen,来进行数据的管理   Widget发出Stream后,无需感知外界的影响,同样的,Widget在listen Stream时,只需要根据数据的改变来构建UI   Widget之间不再耦合,通过Stream管道获取数据,互相无依赖   借助Flutter的这个特性,Google在数据管理之路上提出了BLoC模式。   BLoC模式由Paolo Soares和Cong Hui设计,并谷歌在2018的DartConf首次提出,全称Business Logic Component。      在BLoC模式下,Widget与Data彻底解耦:   App的业务逻辑处理都在BLoC中   Widget通过Sink向BLoC发送数据   BLoC通过Stream通知Widget重建UI   这其实有点类似MVP、MVC模式,BLoC模式将整个App分为三层,Data Layer、BLoC Layer、UI Layer,Data