gpt4 book ai didi

flutter - 拥有 StatelessWidget 的原因是什么?

转载 作者:IT王子 更新时间:2023-10-29 06:41:48 29 4
gpt4 key购买 nike

我注意到,我们可以使用 StatefulWidget 构建 UI 的任何部分,而无需担心状态。

我想问的很简单,当我们可以将任何 UI 类构建为 StatefulWidget 时,首先拥有 StatelessWidget 的原因是什么?是否要为其提供 State

使用 StatefulWidget 是否会带来额外成本,从而使使用 StatelessWidget 创建stateless UI 更容易/更快/更好?

当我阅读文档时,在描述无状态 UI 组件时,我无法准确指出使用 StatelessWidgetStatefulWidget 之间的区别。 It is even recommended to

Consider refactoring the stateless widget into a stateful widget so that it can use some of the techniques described at StatefulWidget...

最佳答案

如果您的小部件管理状态,您应该使用一个 StatefulWidget 和一个关联的 State 对象来存储状态。

如果您的小部件不管理任何状态,并且其构建方法仅取决于其构造函数参数(或 Inherited 小部件,例如 Theme),则最好使用一个 StatelessWidgetStatelessWidget 需要定义更少的类和调用更少的方法,因此它应该比不在其状态中缓存任何内容的等效 StatefulWidget 更快且更易于维护。

如果您关注Push the state to the leaves性能优化,您会将 StatefulWidget 更改为 StatelessWidget 并将有状态部分分解为更简单的 StatefulWidget(可能需要 child 参数并缓存它)。此模式添加了更多类,但具有减少状态更改时所需工作量的好处。

关于flutter - 拥有 StatelessWidget 的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46106929/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com