Tom*_*ran 7 refactoring dart flutter
他们三个基本上做同样的事情。最佳实践是什么?什么情况下应该使用哪种提取方式?标准是什么?
我想这些可能是一些重要的点:
提取容器。您更喜欢哪种方式?为什么?
class Example extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container();
}
}
Run Code Online (Sandbox Code Playgroud)
class Example extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ExtractedAsWidget();
}
}
class ExtractedAsWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container();
}
}
Run Code Online (Sandbox Code Playgroud)
class Example extends StatelessWidget {
@override
Widget build(BuildContext context) {
return buildContainer();
}
Container buildContainer() => Container();
}
Run Code Online (Sandbox Code Playgroud)
class Example extends StatelessWidget {
@override
Widget build(BuildContext context) {
var container = Container();
return container;
}
}
Run Code Online (Sandbox Code Playgroud)
提取Widget是最佳实践,因为 Flutter 框架可以优化小部件而不是方法或变量。但对于这种特殊情况,我将提取Container为method. 提取 asWidget就太过分了。
提取为变量
仅当您的小部件已修复时才应进行提取variable,仅在单个文件中使用并且不需要任何参数。
提取为方法
method当您的小部件仅在单个文件中使用时应该进行提取(并且它还可以使用一些参数进行额外的自定义)。它还增加了代码的可读性。
提取为小部件
提取 asWidget是创建在不同文件中多次使用的小部件的最佳方法。Flutter 建议StatelessWidget尽可能多地创建。
我可以建议的最简单的例子是使用按钮。每个应用程序都有一个我们使用的固定原色按钮。因此,我们不应该创建变量或方法,而是应该创建一个StatelessWidget该按钮并在应用程序的多个屏幕中使用它。
| 归档时间: |
|
| 查看次数: |
1595 次 |
| 最近记录: |