我有一个Flutter Web应用程序,我不想将其中一些小部件(视图)提供给所有用户。
我的Web应用程序包含四个视图,这些视图应该对所有用户可见和可用,另外还有20-25个视图或路由用于管理仪表板。
是否有一种方式可以在运行时按需延迟加载这些小部件?
以避免将所有页面都发送给所有用户。
import 'package:my_web_app/views/About.dart' deferred as about;
然后,每当需要加载该包时,您需要调用:await about.loadLibrary()
。此时,我们的软件包仅初始化,但尚未注入元素树中。要从加载程序调用我们的类或小部件,应使用Widget myLazyWidget = about.About()
,其中about
是加载程序,而About()
是小部件(在我的情况下)。现在,我可以像往常一样使用它并将其添加到widget tree中。
您可以阅读更多信息:https://dart.dev/guides/language/language-tour#lazily-loading-a-library