如下图所示,Stateful widget
涵盖了 Stateless widget
的作用,当我可以用 Stateful widget
做同样的事情时,为什么 Flutter 设计者添加了另一个小部件?为了提高性能?
请不要发布差异只是回答为什么?
答案 0 :(得分:6)
你总是用剑来做刀的工作吗?鉴于您始终可以轻松访问它们。刀不能做剑能做的所有事情,但这是否意味着默认情况下应该使用剑做任何事情,因为它更坚固?
您将拥有许多元素状态不会改变的小部件,以及其他您不必使用 pred_a
## # Predicted values of cty
## # x = manufacturer
## x | Predicted | 95% CI
## ---------------------------------------
## audi | 17.61 | [16.25, 18.97]
## dodge | 13.14 | [12.19, 14.08]
## ford | 14.00 | [12.85, 15.15]
## hyundai | 18.64 | [17.10, 20.18]
## land rover | 11.50 | [ 8.62, 14.38]
## mercury | 13.25 | [10.37, 16.13]
## pontiac | 17.00 | [14.42, 19.58]
## volkswagen | 20.93 | [19.82, 22.04]
pred_b
## # Predicted values of cty
## # x = manufacturer
## x | Predicted | 95% CI
## ---------------------------------------
## volkswagen | 17.61 | [16.25, 18.97]
## subaru | 13.14 | [12.19, 14.08]
## pontiac | 14.00 | [12.85, 15.15]
## mercury | 18.64 | [17.10, 20.18]
## land rover | 11.50 | [ 8.62, 14.38]
## hyundai | 13.25 | [10.37, 16.13]
## ford | 17.00 | [14.42, 19.58]
## audi | 20.93 | [19.82, 22.04]
来更新您的 UI 的小部件(假设您不想使用更高级别的状态管理解决方案)。
使用无状态小部件,只要它们可以完成工作,意味着性能更高的小部件树。
<块引用>请不要发布差异只是回答为什么?
了解它们之间的区别是理解“为什么”的关键,区别不仅仅在于名称 setState
与 less
。但感觉到你不感兴趣,这就是原因。
答案 1 :(得分:1)
为了更好的性能。无状态小部件通常仅在以下三种情况之一被调用: 1- 小部件被插入到树中。 2- Widget 的父级更改其配置 3- 继承的 Widget 它取决于变化。
答案 2 :(得分:1)
好的 Flutter 代码将代码分成许多小的 Widget。除了更好的性能之外,创建 StatefulWidget 意味着您必须编写更多代码并为您的代码增加不必要的复杂性。