Dart 创建自己的颤振小部件最佳实践
我试图理解在flutter中创建自己的小部件的最佳风格,这里有两个非常简单的示例 在底部有代码的情况下,我可以使用1) 或2) 或者我不知道的其他方式 方法1)感觉更正确(如果我没有犯一些错误的话),但是方法2)实际上代码更少(因为我不需要提前声明对象变量,假设我不需要访问上下文),但我对静态方法很谨慎 是首选,为什么Dart 创建自己的颤振小部件最佳实践,dart,flutter,Dart,Flutter,我试图理解在flutter中创建自己的小部件的最佳风格,这里有两个非常简单的示例 在底部有代码的情况下,我可以使用1) 或2) 或者我不知道的其他方式 方法1)感觉更正确(如果我没有犯一些错误的话),但是方法2)实际上代码更少(因为我不需要提前声明对象变量,假设我不需要访问上下文),但我对静态方法很谨慎 是首选,为什么 class SomeWidget extends StatelesssWidget { String title; Function callback; Some
class SomeWidget extends StatelesssWidget {
String title;
Function callback;
SomeWidget( this.title, this.callback );
//method 1
Widget build(context) {
return GestureDetector(
onTap: callback,
child: ....some widget
)
}
//method 2
static Widget widget(String title, Function callback) {
return GestureDetector(
onTap: callback,
child: ....some widget
)
}
}
我不知道实际的Guillideline,但我更喜欢
class SomeWidget extends StatelesssWidget {
SomeWidget({this.title, this.callback});
final String title;
final VoidCallback callback;
Widget build(context) {
return GestureDetector(
onTap: callback,
child: ....some widget
);
}
}
或者你可以这样做
SomeWidget({this.title = '', @required this.callback})
对于默认值或如果需要某些值
另外,所有这些都不是指导原则——它只是一个IMHO)您的第二个版本甚至不需要或使用任何小部件。它可能是一个顶级函数,使一些小部件变得多余。忽略无意义的编辑。经过一些思考之后,应该在另一个问题中提出,我在这里提出:。这个问题也应该回答你的问题,去看看吧!:)安德烈说得对。无论如何,如果您有一个
无状态小部件
小部件的所有字段都应该是不可变的,例如final。如果小部件的状态应该可以更改,请使用StatefulWidget
。你说得对,我错过了这一刻。实际上,StatefulWidget
中的字段也必须是不可变的)哦,我指的是StatefulWidget
的State
中的字段。
class SomeWidget extends StatelesssWidget {
SomeWidget({this.title, this.callback});
final String title;
final VoidCallback callback;
Widget build(context) {
return GestureDetector(
onTap: callback,
child: ....some widget
);
}
}
SomeWidget({this.title = '', @required this.callback})