在flutter中,我们可以传递一个无状态小部件,该小部件将MaterialApp实例返回给runApp()函数,如下所示:
MaterialApp
runApp()
void main()=>runApp(new MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return new MaterialApp( ... ); } }
或者我们可以像这样MaterialApp直接将的实例传递给runApp()函数:
void main()=>runApp( new MaterialApp( ... ); );
这些方法之间有什么区别?谢谢。
视觉行为没有差异。变化的是热重装的行为方式。
例如,如果您使用runApp(MaterialApp()),则从
runApp(MaterialApp())
runApp(MaterialApp(title: 'Foo'))
至
runApp(MaterialApp(title: 'Bar'))
则热重载不会考虑更改。
而如果您有以下课程:
class MyApp { @override Widget build(BuildContext context) { return MaterialApp( title: 'Foo', ); ) }
并像这样使用它:
runApp(MyApp())
然后改变title的MyApp将被正确地重新加载热点。
title
MyApp