当我们已经有了 Flutter 内置的 setState 时,为什么还要在 Flutter 中使用 BloC 或 Provider 呢?

boc*_*boc 5 flutter flutter-provider flutter-bloc flutter-state

也许我不明白 BloC 或 Provider 的目的,但我很困惑为什么我们想要使用它们而不是使用 Flutter 的内置状态管理(使用 widget)Stateful。我刚刚完成了一个应用程序,但不记得我希望我需要比默认值更多的东西。有人可以帮我解决问题吗?

Ali*_*izi 3

在某些情况下,您需要BLoC来让您更轻松地定义应用程序内部发生的每个状态或条件。

我们将开始讨论创建像https://www.tokopedia.com/这样的应用程序(检查元素并使用手机尺寸预览)。您将看到在小部件部分tokopedia_ss之间有一些加载动画,当数据加载完成时,小部件加载动画更改为可查看的小部件(作为用户)。

bloc中,您将创建 stateLoading()、stateComplete(data)、stateFailed(data)。在控制器或屏幕中,您可以描述当块状态为 stateLoading 等时会发生什么...

使用setstate创建此案例更加复杂,并且会使您的代码变得混乱,而且 setstate 将使手机渲染所有 Build() 代码。与BloC builder不同,您可以定义每个小部件或部分。

因此,当有 10 个部分时,使用Bloc可以让它渲染每个状态,但是当使用标准setstate时,每次状态更改时,它都会一次性渲染所有 10 个部分。

有关BloC的更多信息:article_about_BloC