如果我们仅在StatelessWidget上使用StatefullWidget,反之亦然,会对性能产生影响吗?

以我的观点,我们只是使用StatefullWidget进行某些操作,例如使用setState()更新UI的一部分,可以在initState()中设置一些代码并在dispose()函数中进行处理。因此,当我不需要这些东西时,请继续使用StatelessWidget

但是,这两个最常用的小部件之间真正的性能影响是什么?

最佳答案

在性能方面,StatelessWidget几乎与带有空StatefulWidgetState相同。

写作:

class Example extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container();
  }
}

或者:

class Example extends StatefulWidget {
  @override
  _ExampleState createState() => _ExampleState();
}

class _ExampleState extends State<Example> {
  @override
  Widget build(BuildContext context) {
    return Container();
  }
}

不会对您的应用程序的性能产生任何明显的影响。

在这里使用StatelessWidget确实确实获得了很小的 yield 。但这太小了:

它们之间的区别可以概括为调用一个空函数与不调用一个空函数。是的,但是绝对没有关系。

原因是,内部StatefulWidgetStatelessWidget的实现几乎相同。
StatelessWidget确实具有StatefulWidget拥有的所有额外生命周期。
它具有“initState”/“dispose”。甚至是setState!
它们只是不属于公共(public)API的一部分。

关于flutter - StatefullWidget和StatelessWidget关于性能的区别是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59245350/

10-10 17:56