Kev*_*RED 12 flutter statefulwidget statelesswidget
我是 flutter 世界的新手,我最近学习了(或者我认为我已经学会了)有状态和无状态小部件,这是 Flutter 小部件的基础。
我们将无状态小部件用于未在显示器上重绘的内容(如文本、按钮等),但有状态小部件可以重绘自己。
所以我的问题是,如果有状态小部件可用于绘制与无状态小部件相同类型的小部件,为什么我们需要无状态小部件?
或者是否有任何特定原因在 flutter 中使用无状态而不是有状态的小部件?或者我们可以一直使用有状态的小部件而不是只能绘制一次内容的无状态小部件吗?
谢谢,对不起,如果这是一个愚蠢的问题。
那么问题不是无状态和有状态之间的区别。我知道其中的区别,但是仅使用有状态小部件有什么影响,因为通过使用它我们还可以实现无状态小部件可以做的大部分事情,那么为什么我们需要无状态小部件?它在颤振环境中的重要性是什么?的应用程序将不时重新绘制?
从他们的文档中:
当您描述的用户界面部分不依赖于对象本身的配置信息和小部件在其中扩展的 BuildContext 之外的任何内容时,无状态小部件非常有用。(= 当您不需要“在此处更新 UI”时使用)。
有状态小部件更消耗资源,您始终需要考虑性能。
将状态推送到叶子。例如,如果您的页面有一个滴答作响的时钟,则不要将状态放在页面顶部并在每次时钟滴答时重建整个页面,而是创建一个仅更新自身的专用时钟小部件。
我希望这回答了你的问题。
是的,StatefulWidget可以重建。使用 Inheritedwidgets 时通常会发生这种情况。
StatelessWidget 的存在是为了将一个大的 widget 树分割成更小的可重用的 widget。
您可能会想“但我可以使用 StatefulWidget 或函数来实现此目的”。这是正确的,但不完全是:
key
和覆盖 ==。因此它们可能会降低性能或引入错误。 归档时间: |
|
查看次数: |
4233 次 |
最近记录: |