美文网首页
flutter_bloc使用解析

flutter_bloc使用解析

作者: woshishui1243 | 来源:发表于2020-12-08 11:19 被阅读0次

原始bloc存在的问题:

1 state问题

初始化问题:这边初始化是在bloc里,直接在构造方法里面赋初值的,state中一旦变量多了,还是这么写,会感觉极其难受,不好管理。需要优化

2 bloc问题

如果进行一个页面,需要进行复杂的运算或者请求接口后,才能知晓数据,进行赋值,这里肯定需要一个初始化入口,初始化入口需要怎样去定义呢?

Bloc范例优化

1 state

首先对state进行优化,新增俩个方法:init()和clone()
init():这里初始化统一用init()方法去管理。
clone():这边克隆方法,是非常重要的,一旦变量达到俩位数以上,就能深刻体会该方法是多么的重要。

2 event

定义一个与初始化state相对应的init()初始化方法

3 bloc

这增加了初始化方法,请注意,如果需要进行异步请求,同时需要将相关逻辑提炼一个方法,咱们在这里配套Future和await就能解决在异步场景下同步数据问题.
这里使用了克隆方法,可以发现,我们只要关注自己需要改变的变量就行了,其它的变量都在内部赋值好了,我们不需要去关注;这就大大的便捷了页面中有很多变量,只需要变动一俩个变量的场景。

4 view

view层增加了个初始化事件。初始化操作直接在创建的时候,在XxxBloc上使用add()方法就行了,就能起到进入页面,初始化一次的效果。
bloc的思想
观察者模式的思想;观察者(回调刷新控件)和被观察者(产生相应事件,添加事件,去通知观察者),bloc层是处于观察者和被观察者中间的一层,我们可以在bloc里面搞业务,搞逻辑,搞网络请求;拿到Event事件传递过来的数据,把处理好的、符合要求的数据返回给view层的观察者就行了。

Cubit是Bloc模式的一种简化版,去掉了event这一层,对于简单的页面,用Cubit来实现。

1 event层实际是所有行为的一种整合,方便对逻辑过于复杂的页面,所有行为的一种维护;但是过于简单的页面,就那么几个事件,还单独维护,就没什么必要了
2 在cubit层写的公共方法,在view里面能直接调用,更新数据使用:emit()。
3 cubit层应该可以算是:bloc层和event层一种结合后的简写

作者:xdd666
來源:https://www.cnblogs.com/xdd666/p/13802923.html
著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

相关文章

  • flutter_bloc使用解析

    原始bloc存在的问题: 1 state问题 初始化问题:这边初始化是在bloc里,直接在构造方法里面赋初值的,s...

  • flutter_bloc使用解析

    https://www.jianshu.com/p/275890009337[https://www.jiansh...

  • Flutter_Bloc 使用

    bloc 是 flutter 开发中非常优秀的状态管理库,今天我们就来浅学下 bloc 的用法。 引入: bloc...

  • Flutter - 初嘗BloC

    BLoC Example - Counter 使用Library - flutter_bloc此筆記不同於官方的C...

  • Flutter状态管理之路(三)

    接上一篇 Flutter状态管理之路(二),此篇主要介绍Flutter_Bloc Flutter_Bloc 版本:...

  • flutter_bloc使用解析---骚年,你还在手搭bloc吗

    前言 首先,有很多的文章在说flutter bloc模式的应用,但是百分之八九十的文章都是在说,使用StreamC...

  • Flutter_bloc

    今天重点讲一下bloc ,百度一下 有关这方面的知识比较少,毕竟flutter刚刚出来半年多,我的项目里管理方式是...

  • Flutter_Bloc

    Flutter中的Bloc Bloc和Widget是一种强绑定的关系,下面介绍一些核心的概念。下面提到的状态并不是...

  • 第九章--网络技术的使用

    1. HttpURLConnection使用 一个完整使用例子 2.解析xml方式 pull解析 SAX解析 3....

  • lxml的使用方法

    使用lxml解析HTML代码 1.解析html字符串:使用lxml.etree.HTML进行解析,示例代码如下: ...

网友评论

      本文标题:flutter_bloc使用解析

      本文链接:https://www.haomeiwen.com/subject/oxxtgktx.html