为什么在 Flutter 中实例化 widget 时有时会使用 const?

Why use const sometimes when instantiating a widget in Flutter?

我在 Flutter 中有一个代表简单加载的小部件:

class Loading extends StatelessWidget {
  const Loading({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Material(
      child: Center(
        child: CircularProgressIndicator(),
      ),
    );
  }
}

我在版本 2021.2.1 上使用 IntelliJ,在 flutter 中构建代码时,我在不同时间收到此警告:

要解决这个 lint 问题可以只在 return 语句后添加保留字 const ,代码如下:

class Loading extends StatelessWidget {
  const Loading({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return const Material(
      child: Center(
        child: CircularProgressIndicator(),
      ),
    );
  }
}

这到底是怎么变flutter的?这是一个重大变化吗? 如果不是很重要,有没有办法在 IntelliJ 中禁用这些警告?因为我觉得他们很无聊。

看看这个post是否可以帮助你澄清:

build 中的 Const 构造函数,例如 const Text('static text') 不会导致此文本重建。

它将阻止 Widget 在重建其父级时被重建,因为您已经知道它永远不会改变。因此,只需构建一次,您就可以通过将其设为 const.

来提高性能