xdd666t/flutter_use

DeferredRouter方法疑问

DavidChZh opened this issue · 4 comments

`class DeferredRouter extends StatelessWidget {
const DeferredRouter({
Key? key,
required this.future,
required this.builder,
}) : super(key: key);

final Future future;

final WidgetBuilder builder;

@OverRide
Widget build(BuildContext context) {
return FutureBuilder(
future: future,
builder: (context, snapshot) {
// web scene
if (snapshot.hasError) {
return Text('Error: ${snapshot.error}');
}
if (snapshot.connectionState != ConnectionState.done) {
return const Center(child: CircularProgressIndicator());
}
return builder(context);
},
);
}
} DeferredRouter(
future: deferred_lexicon_favorite.loadLibrary(),
builder: (_) => deferred_lexicon_favorite.LexiconFavoritePage(),
)`
大佬,看了您的demo里面这个路由懒加载,也查了资料,想请教下,我理解的页面本身就是用到的时候才会加载,这里又用了一个异步组件,这个是说对页面的载入懒加载吗,具体是加载的什么东西。
还有跟DeferredRouter同一个目录的DeferredWidget类也没看到哪里引用到了。

主要是为了编译成web,js分片,减少首次加载速度

是说编译为webPC端应用的时候用的吗,纯移动端比如安卓或者苹果是用不上的。对吗

是的,端上在一些特殊场景也可以用到,但是这里不需要关注

好的。感谢!