用Sencha CMD生成APP的影响要不要做?

Impact of generating APP with Sencha CMD or not to do it?

我只是这样使用 ExtJS:

index.html:

<script type="text/javascript" src="extjs/ext-all.js"></script>   
<script type="text/javascript" src="extjs/classic/theme-gray/theme-gray.js"></script>
<link rel="stylesheet" type="text/css" href="extjs/classic/theme-gray/resources/theme-gray-all.css">

并生成我的主屏幕:

Ext.create('Ext.tab.Panel', {
           plugins: 'viewport',
           items: [ tab01, tab02 ],
           renderTo : Ext.getBody(),
           listeners:{
                afterrender:function(){
                    // Do some post init routines...
                }
            }              
}); 

我有一些 Javascript 文件,其中包含每个屏幕的所有元素:模型、Windows、商店、网格或面板。所有这些都在同一个文件中,代表一个屏幕语义。我只是发现这种方式更容易维护代表每个功能的代码。

我认为使用 Sencha CMD 生成应用程序没有任何问题,但是应用程序文件夹结构,即使是干净的并保持原位,增长太多,让我花了一些时间来搜索代码。

我想知道使用 Sencha CMD 生成应用程序是否只是一种信仰,否则我以后会很痛苦。

好的 - 这有点主观意见,但这里是。

1) 如果您通常不遵循 Sencha CMD 结构,您以后会遇到麻烦。如果你的申请不止一个page/view,那就是。如果您停留在单个对话框中,没有 SASS 自定义,并且通常不会变得复杂,那么您将不会看到这些问题。随着您的应用程序的增长——特别是如果您开始需要在屏幕之间共享代码(例如模型),您将开始对这种简单的方法感到痛苦。如果您需要支持移动设备,则需要远离它。

2) 即使在 Sencha CMD 结构中,您仍然可以将相关的 classes 分组到一个文件中,特别是如果它是主 class 的内部细节。例如,我几乎总是将我的 ViewController 和 ViewModel class 定义在与它们对应的视图相同的文件中。我经常在与呈现它们的视图相同的文件中定义新的小部件——如果它们变得更复杂或者如果我想在别处重新使用它们,就将它们分解出来。我在这里唯一的基本规则是永远不要 'require' 以这种方式定义的 class。

3) 对于任何此类方法,强烈建议使用别名而不是直接 class 名称来引用您的 classes。这使得重新组织您的代码库变得更加容易 - 您可以移动和重命名 classes,而您所要做的就是修复您的 'requires' 语句。