【问题标题】:Flutter - Two stateful in one stateless or two stateless in one statefulFlutter - 两个有状态的一个无状态或两个无状态的一个有状态
【发布时间】:2020-08-14 12:54:21
【问题描述】:
我对 Flutter 还很陌生,我很难理解应该在哪个阶段使用 Stateful 小部件。为了说明我的问题,这里有一个简单的布局。
Simple Layout
假设我们想要在用户点击容器时更改容器的背景颜色。
我应该让我的主页小部件成为一个有状态的小部件来保存容器的状态吗?或者我应该让我的主页成为无状态小部件,并使我的两个容器有状态小部件保持它们的状态?
【问题讨论】:
标签:
flutter
architecture
stateless
stateful
state-management
【解决方案1】:
首先,您需要了解何时需要使用 Stateful Widget。 Flutter 官网是这么说的
当您描述的用户界面部分可以动态更改时,有状态小部件很有用,例如由于具有内部时钟驱动状态,或取决于某些系统状态。
您可能希望在点击时一次更改一个容器的状态,而不是整个主页。因此,如果您制作 HomePage Stateful Widget,当其中一个被点击时,您将不得不重新渲染这两个 Container。如果分别制作 Containers Stateful Widget 和 HomePage Stateless Widget,则只会重建被点击的 Container。因此,选择一个而不是另一个的好处取决于您的目标。选择一个更适合您的。