如何在Flutter中进行懒加载导入包

6
我有一个Flutter Web应用程序,我不想将其中一些小部件(视图)提供给所有用户。 我的Web应用程序包含四个视图,这些视图应该对所有用户可见和可用,另外还有20-25个视图或路由用于管理仪表板。 是否有一种方式可以在运行时按需延迟加载这些小部件? 以避免将所有页面都发送给所有用户。
1个回答

12
我找到了解决方案,你需要在import语句后添加后缀关键字“deferred loading”。 例如: 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

很高兴知道这个解决方案。我并不急于安装其他软件包来实现懒加载。 - Adrian Moisa
很好,我很高兴Flutter有一个懒加载功能。 - Anthony Aniobi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接