gpt4 book ai didi

flutter - 无状态和有状态小部件有什么区别?

转载 作者:IT老高 更新时间:2023-10-28 12:36:25 26 4
gpt4 key购买 nike

我正在学习 Dart/flutter 并试图了解 Widgets 系统的工作原理。但我不明白无状态和有状态小部件之间有什么区别?例如我有按钮。它有什么类型?

让我们想象两种情况。我将文本发送到按钮并显示它。我将文本发送到按钮,它会改变颜色。

如果我创建不正确的 Widget 类型会怎样?

最佳答案

有 3 种小部件,而不仅仅是 2 种。

  • 有状态的小部件
  • 无状态小部件
  • 继承的小部件

无状态小部件就像一个常量。它是不可变的。如果您想更改无状态小部件显示的内容,则必须创建一个新小部件。

有状态的小部件正好相反。它们是活的并且可以与用户交互。有状态的小部件可以访问名为 setState 的方法,该方法基本上是对框架说“你好,我想显示其他东西。你能重绘我吗?”。

最后,Inherited 小部件是两个世界的混合体。它是不可变的和无状态的。但是另一个小部件(无论它是什么)可以订阅该继承的小部件。这意味着当您用新的小部件替换继承的小部件时,所有订阅旧小部件的小部件都将被重绘。

最后,有状态的小部件通常会像 Controller 一样使用。无状态小部件将像 View 一样使用。继承的小部件将是您的配置文件或模型。

关于flutter - 无状态和有状态小部件有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45936084/

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