我对GWT模块的理解是它是“可重用性的单位”。
EntryPoint
的理解是它是一个与客户端浏览器交互的模块。因此,我将EntryPoint
视为“可执行JAR”,将模块视为库JAR或DLL。
我对片段的理解是它是用于延迟绑定和代码分裂的模块的子组件。
首先,如果我对这些断言不正确,请先纠正我或为我澄清事情!
如果我是正确的,那么很明显你会根据 need 将模块分解为片段。你编写你的模块,你在每个方向测试它,你检查你的soyc
编译器报告,如果你看到瓶颈,你开始碎片和codesplit必要,是吗?
但是如何将应用程序分解为模块和入口点?!?同样,我确信这一切都归结为 need 并且是特定于应用程序的。我刚读过this article on structuring a GWT app,虽然它非常有帮助,但它仍然没有为将应用程序分解为模块/入口点提供任何试金石或一套指导原则。
我已经计划将我的应用分为两个模块:WebModule
和AppModule
。 WebModule
将是应用程序的“公共”部分(网站,如果您愿意),并且在用户成功登录后将下载AppModule
(I出于安全目的这样做。)
但除此之外,我不确定如何将AppModule
分解为其他模块,以及如何确定这些模块是否需要入口点。所以我要问:如果您使用代码下载来分解模块以避免网络延迟问题,那么何时/为什么模块化应用程序,以及模块何时需要入口点?
答案 0 :(得分:0)
EntryPoint
不是一个单独的模块。它是模块的一部分,并且具有在应用程序启动时将调用的函数。
答案 1 :(得分:0)
模块的要点是对逻辑功能进行分组,以便您可以在不同项目之间共享代码。没有其他的。 GWT已经附带了一堆模块(HTTP,Activity,Places,Debug)。如果您决定将其分组,则可能在您的应用程序中有一个COMMENT或USER模块。
只应在需要时使用Codesplitting。您只能通过GWT.runAsync()
引用超出片段边界的代码,这可能是一个很大的烦恼。如果您的应用程序加载缓慢,我建议您只采取此步骤。