我们刚刚开始在我们的项目中使用 Sencha 的 ExtJS 4,并且一直按照文档在客户端上构建 MVC 架构。随着时间的推移,我倾向于认为这比它的价值更麻烦,因为:
- 我们渲染到不同的视图(ExtJS 就是其中之一),因此我们将所有逻辑保留在服务器上的控制器中,以尽量减少重复
- 正因为如此,没有太多的单元测试,因为几乎没有逻辑。我们使用 Selenium 进行功能测试
在这样的瘦客户端上保留 MVC 架构有什么好处?有什么现在不明显,但当我们开始为它开发组件时可能会出现?
根据我使用 Ext JS 4 的经验,使用 MVC 通常比它的价值更麻烦。
如果您在 Ext JS 中构建整个站点,那么您可能会从中获得一些好处,但没有什么是您无法从创建/覆盖组件中获得的。如果您正在开发几乎没有客户端逻辑的瘦客户端,那么您最终会引入更多开销。
主要问题是当您开始在许多不同的页面上需要相同的组件时(例如带有员工列表的组合框)。根据它所在的页面,您可能需要不同的侦听器,但在大多数情况下,它在任何地方都是相同的。创建一个在初始化时加载数据的 Store 非常简单,然后定义您需要的具有默认值设置的任何组件的子类。然后你需要做的就是给它 storeId 和你想要的任何监听器,然后就可以了。