Flutter 中函数应该放在 build 方法内部还是外部?它会影响性能或干净的代码实践吗?

问题描述 投票:0回答:1

我正在开发 Flutter 应用程序,想知道与将函数放置在构建方法内部或外部相关的最佳实践。

例如,我有一个简单的 onPressed 函数的两个版本。一个是在构建方法中定义的:

class MyWidget extends StatelessWidget {

  @override
  Widget build(BuildContext context) { 
    return Scaffold(
      appBar: AppBar(title: Text('Inside Build')),
      body: Center(
        child: ElevatedButton(
          onPressed:() {
             //... do something
          },
          child: Text('Press Me'),
        ),
      ),
    );
  }
}

还有一个函数放置在构建方法之外:

class MyWidget extends StatelessWidget {

  void _showMessage(BuildContext context) {
    //... do something
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Outside Build')),
      body: Center(
        child: ElevatedButton(
          onPressed: () => _showMessage(context),
          child: Text('Press Me'),
        ),
      ),
    );
  }
}

我的问题:

  1. 在构建方法内部或外部定义函数有性能差异吗?
  2. 从干净的代码角度来看,哪种方法更好?
  3. 在某些情况下,在构建方法内部或外部定义函数是更好的选择吗?
flutter dart
1个回答
0
投票

我建议将函数保留在构建方法之外。它使您的代码更加清晰,并避免每次小部件重建时重新创建函数,这对性能来说更好。如果是简单的一行代码,在里面定义就可以了,但是对于更多的东西,最好将逻辑分开。

室外使用:

  • 在重建小部件的情况下性能更好 频繁地。当函数包含时建议使用此方法 逻辑比较复杂,用在多个地方,或者需要访问 类级状态。

内部使用:

  • 对于非常简单的一次性函数,在构建中定义它们 方法可以很方便。
  • 将所有东西都放在一个地方,这可能会 对于非常小的小部件来说更可取。
© www.soinside.com 2019 - 2024. All rights reserved.