我正在开发 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'),
),
),
);
}
}
我的问题:
我建议将函数保留在构建方法之外。它使您的代码更加清晰,并避免每次小部件重建时重新创建函数,这对性能来说更好。如果是简单的一行代码,在里面定义就可以了,但是对于更多的东西,最好将逻辑分开。
室外使用:
内部使用: