我正在创建一个单页面Web应用程序。
我为app结构创建了一个基本设计。关于This视频的this回答非常有帮助。
该应用程序包含一个html页面。 JS代码将改变它的内容。 Usher将根据URL提供模块(domain.com/#list#item1将返回项目模块)。
该模块将使用沙箱从服务器检索数据(将使用Application Core)。 该模块将通过将沙箱传递给键值列表来设置页面样式,并以这种方式设置页面HTML。
你怎么看待它。它解耦得够吗?
答案 0 :(得分:0)
简短回答:那种。这取决于你的模块有多复杂。
答案很长:
我正在开发一款尊重Core的应用程序 - >沙箱实例 - >像你描述的模块模式。
关于我的申请的唯一未回答的问题是:
“当模块A和模块B具有相同或几乎相同的小UI组件时会发生什么?”。
在你的情况下,这可能是5个模块中的手风琴。这个手风琴可能是应用程序特定的,所以只需在核心中添加一个jquery插件,并通过Sandbox将它暴露给模块就不会削减它。
我最终得到了两个可能的解决方案:
1)将通用功能用作特殊类型的模块,可以通过沙箱由其他模块请求。如果只有一个UI实例在给定时间可见 - 这可能是您的情况 -
2)对我的重用对象使用简单的原型实例化,并将其作为所有使用它的模块的依赖项添加。