Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 将StatefulWidgets封装在无状态widgets中是一种好的做法吗?_Performance_Flutter - Fatal编程技术网

Performance 将StatefulWidgets封装在无状态widgets中是一种好的做法吗?

Performance 将StatefulWidgets封装在无状态widgets中是一种好的做法吗?,performance,flutter,Performance,Flutter,我知道,无状态widgets没有稍后会改变的状态,另一方面,StateFulWidgetsdo。因此,在有状态小部件中只保留可更改的部分,然后在无状态小部件中与UI的其余部分一起使用,这是一个好主意吗 例如,如果我有一个页面有一个日期选择器,那么我需要一个有状态的小部件来保存该日期控件,但是UI中实际使用所选日期的其余部分不会改变。因此,如果我将日期控件设置为有状态的小部件并将其保存在无状态的小部件中,它会提供更高的性能,尤其是w.r.t.小部件重建透视图吗?我的意思是,在这种情况下,当选择日期

我知道,
无状态widgets
没有稍后会改变的状态,另一方面,
StateFulWidgets
do。因此,在有状态小部件中只保留可更改的部分,然后在无状态小部件中与UI的其余部分一起使用,这是一个好主意吗


例如,如果我有一个页面有一个日期选择器,那么我需要一个有状态的小部件来保存该日期控件,但是UI中实际使用所选日期的其余部分不会改变。因此,如果我将日期控件设置为有状态的小部件并将其保存在无状态的小部件中,它会提供更高的性能,尤其是w.r.t.小部件重建透视图吗?我的意思是,在这种情况下,当选择日期时,父窗口小部件是否会重建?

是的,出于优化目的,可以将有状态窗口小部件放在无状态窗口小部件中。当有状态小部件重新绘制时,无状态小部件将保持不变

是的,出于优化目的,可以将有状态小部件放在无状态小部件中。当有状态小部件重新绘制时,无状态小部件将保持不变

谢谢你提出的好问题

答案是使用包并将需要更改的小部件包装到消费者小部件中。它侦听更改并重建您所需的内容,而无需重建整个小部件树


这段视频很好地解释了这一点:

谢谢你提出的好问题

答案是使用包并将需要更改的小部件包装到消费者小部件中。它侦听更改并重建您所需的内容,而无需重建整个小部件树


这段视频很好地解释了这一点:

这样做是一个很好的做法。
事实上,颤振默认应用程序代码使用了这一点。

这样做是一个很好的实践。
事实上,Flatter默认应用程序代码就是这样使用的。

怪异且不成熟optimisation@GenchiGenbutsu你能解释一下你为什么认为这太过保守和不成熟吗optimisation@GenchiGenbutsu你能解释一下你为什么这么想吗