flutter - Scoped Model、BLoC 模式、StreamBuilder 和 Inh

我想我现在至少对如何使用 BLoCStream Builder 有了一个模糊的概念和我的应用中的 Inherited Widget(或 Model)(没什么特别的,但对我来说这需要时间),但是使用 Scoped Model
我有一种生存危机:我觉得他们大多可以做同样的事情,或者至少我可以用他们中的任何一个取得相同的明显结果,但我没有能力理解何时为什么 一个比另一个好。

最佳答案

范围模型与 Bloc

简而言之:如果您有小型应用程序,请使用 范围模型,因为 bloc 往往会使它复杂化,如果您有大型应用程序,请使用 bloc
详细解释见这篇文章:bloc vs scoped_model


Stream Builder vs Inherited Widget

这是 Remi Rousselet 给出的 stream builderinherited widget 之间的一个很好的比较:https://stackoverflow.com/a/49958864/10471480

Streams/Sink 绝对是存储状态的绝佳选择。有一些现有的架构,例如 BLoC 使用它们很多。

但是,Streams 也不能完全取代 InheritedWidgetInheritedWidget 具有很酷的功能,可以仅覆盖屏幕的一部分内容。 Theme 是一个很酷的应用程序。

一般来说,Streams 用来存储业务逻辑很酷。但是当你需要存储 UI 逻辑时,InheritedWidgets 占了上风。

关于flutter - Scoped Model、BLoC 模式、StreamBuilder 和 Inherited Widget(或 Model)我应该选择哪一个,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53803613/

相关文章:

android-studio - 使用 Android Studio 自动在右括号后插入注释

flutter - 如何在 flutter 中听焦点变化?

flutter - 在 Flutter 中使用 SafeArea

flutter - 单击屏幕上的文本字段/任何位置后,如何在 flutter 上隐藏软输入键盘?

flutter - 如何在 Dart 中对 Textfield onChange 进行去抖动?

dart - Flutter:在简历上更新小部件?

dart - 将带参数的函数传递给 VoidCallback

dart - 在所有页面 Flutter 中持久化 AppBar Drawer

dart - 如何在 flutter 的另一个有状态小部件中访问在一个有状态小部件中创建的对象

flutter - 如何在 Flutter 中创建带有圆角的模态底页?