【发布时间】:2012-10-23 09:04:09
【问题描述】:
假设您有一个“显示区域”(AcceptsOneWidget),其中包含一个选项卡式窗格。单击不同的选项卡(即,从“fantastico”到“profile”)会导致在窗格中显示全新的内容。这似乎是代码拆分的完美用例,因为在用户单击“profile”选项卡之前,他们不需要下载显示它所需的代码。 (注意:如果任何 GWT 专家不同意并且认为这不是代码拆分的正确用例,请向我指出这一点,但这不是这个问题的重点,所以请只是忍受我!)
那么,如果我对基本 GWT 架构的理解是正确的,那么显示“profile”选项卡所需的代码由Activity(ies) 组成,Place(s),也许是一些 MVP 的东西,例如 Presenter、Module、EntryPoint 等。当然这会因应用程序和开发人员的不同而有所不同(正如我在 GWT 中了解到的那样实现相同目标的许多方法),但无论如何,它都是一堆 MVP/Activity/Place “东西”。对于这个问题,我喜欢this SO question的回答者提出的模型。
在阅读this article on the AsynchProvider pattern 之后,我试图将所有这些最佳实践结合在一起并实现一个架构:
- 我实现了代码拆分,使得窗格中的每个选项卡都被代码拆分(是 codesplitted 吗?codesplat?)作为自己的片段,并且仅当/当用户第一次点击它
- 显示/渲染/实现每个片段(选项卡/窗格)所需的所有代码都井井有条,并遵循上述文章中引用的
AsynchProvider模式;这允许它被划分并且不依赖于其他片段
我开始将所有部分放在一起,但仍然没有看到这两个概念如何在工作代码中联系在一起。
我发现 GWT 是神秘的、强大的和美妙的,但是如果没有可遵循的实际代码示例,则很难学习。当然,这些线框在“fantastico”或“profile”窗格中并没有真正显示出任何复杂性,所以请再次忍受并假装它们都相当复杂显示具有大量丰富 UI 组件的区域。提前致谢!
【问题讨论】:
-
地球上怎么会“很难说出这里问的是什么”?!?!我不能让它更清楚。此外,以典型的 SO 方式,在没有任何 cmets 要求我更改问题、使其更清晰、不同措辞或给我任何捍卫它的机会的情况下关闭。我不认为这就是 SO 的意义所在。
标签: java gwt mvp gwt-activities gwt-places