在另一个自定义小部件中创建多个自定义无状态小部件会影响性能吗?
Does creating multiple custom stateless widgets inside another custom widget affect performance?
所以我有 TabBar,我在 TabBarView
.
中制作了可重用的 Tab 或自定义小部件 TabBarPage
我的问题是像下面这段代码这样的方法是否会影响不良性能,或者如果我不在自定义小部件内制作任何自定义小部件是否相同?
TabBarView(
children: [
TabBarPage(
child: NowPlaying(),
),
TabBarPage(
child: Upcoming(),
),
TabBarPage(
child: Popular(),
),
],
),
在 TabBarPage 中,我有 final Widget child;
充满了 NowPlaying、Upcoming 或 Popular,这三个子项具有相同的代码但提供者不同
Container(
padding: EdgeInsets.fromLTRB(18.w, 0, 18.w, 0),
child: SingleChildScrollView(
child: this.widget.child,
),
),
并且在 NowPlaying、Upcoming 或 Popular 中我有我的 2 个自定义小部件(TabLoading、TabContent)
class NowPlaying extends StatelessWidget {
const NowPlaying({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Consumer<NowPlayingProvider>(
builder: (context, data, child) {
if (data.isLoading == true) return TabLoading();
return TabContent(data: data.nowPlaying);
},
);
}
}
显然不,通过在另一个自定义小部件中创建多个自定义无状态小部件对性能没有影响,通过 this
所以我有 TabBar,我在 TabBarView
.
TabBarPage
我的问题是像下面这段代码这样的方法是否会影响不良性能,或者如果我不在自定义小部件内制作任何自定义小部件是否相同?
TabBarView(
children: [
TabBarPage(
child: NowPlaying(),
),
TabBarPage(
child: Upcoming(),
),
TabBarPage(
child: Popular(),
),
],
),
在 TabBarPage 中,我有 final Widget child;
充满了 NowPlaying、Upcoming 或 Popular,这三个子项具有相同的代码但提供者不同
Container(
padding: EdgeInsets.fromLTRB(18.w, 0, 18.w, 0),
child: SingleChildScrollView(
child: this.widget.child,
),
),
并且在 NowPlaying、Upcoming 或 Popular 中我有我的 2 个自定义小部件(TabLoading、TabContent)
class NowPlaying extends StatelessWidget {
const NowPlaying({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Consumer<NowPlayingProvider>(
builder: (context, data, child) {
if (data.isLoading == true) return TabLoading();
return TabContent(data: data.nowPlaying);
},
);
}
}
显然不,通过在另一个自定义小部件中创建多个自定义无状态小部件对性能没有影响,通过 this