组织一个很长的 ExtJS 项目配置(包含许多嵌套项目)都有哪些好的方法?

Posted

技术标签:

【中文标题】组织一个很长的 ExtJS 项目配置(包含许多嵌套项目)都有哪些好的方法?【英文标题】:What are some good approaches to organizing a very long ExtJS item config, containing many nested items?组织一个很长的 ExtJS 项目配置(包含许多嵌套项目)有哪些好的方法? 【发布时间】:2011-07-11 09:45:49 【问题描述】:

具体示例是一个“首选项”窗口,它具有一系列选项卡,每个选项卡都包含一系列表单字段。这些选项卡或表单字段都不会在窗口之外重复使用,并且窗口本身只会有一个实例。使用单个项目配置意味着它有数百行长,难以维护。

My.Ns.PreferencesWindow = Ext.extend(Ext.Window, 

    items: [
        // A tab
        
            items: [
                // Form fields
                ,
                ,
                ,
            ]
        ,
        // A tab
        
            items: [
                // Form fields
                ,
                ,
                ,
            ]
        ,
        ...
    ]
);
我不是在问如何组织大型 ExtJS 应用程序。我读过Best Way to Organize an ExtJS Project 和Saki's blog posts on the topic。 Ext.extend 对每个项目都没有实际意义,因为它们不会被多次实例化。 将各种组件封装在仅返回项目 json 的“生成器”函数中,乍一看似乎是一种合理的方法。

【问题讨论】:

【参考方案1】:

只需使用变量使其更具可读性:

var tabOneCfg = 
    items: [
        // etc.
    ]
;

var tabTwoCfg = 
    items: [
        // etc.
    ]
;

My.Ns.PreferencesWindow = Ext.extend(Ext.Window, 
    items: [
        tabOneCfg,
        tabTwoCfg
    ]
);

您可以根据需要对其进行细化,甚至将子配置包含在单独的文件中(尽管这种类型的方案在 Ext 4 下不能很好地用于动态加载)。根据配置的性质,生成器或工厂函数也可能有意义。原则上,这两种方式都是一样的——只需将子配置分成更小的块并根据需要使用它们。

【讨论】:

谢谢 bmoeskau。这和我想的一样。我已经 +1,但现在没有被接受为答案,因为我想引出更多想法。 这样更好一些,但仍然没有解决文件增长到数百行大小的问题。 @sym3tri,你看我的回答了吗?您甚至可以“甚至将子配置包含在单独的文件中”。它是 javascript。只要以正确的顺序定义事物,您在多少个不同的物理文件中定义它们并不重要。请注意,您仍应构建为一个文件以进行部署。 @bmoeskau 抱歉,错过了那部分。

以上是关于组织一个很长的 ExtJS 项目配置(包含许多嵌套项目)都有哪些好的方法?的主要内容,如果未能解决你的问题,请参考以下文章

phpunit:避免打印很长的输出

ExtJS 6.0.2 使用 hbox 布局创建具有两个嵌套面板的面板

使用 BEGIN / END 组织 SQL 代码有啥危害吗?

很长的 gradle 构建时间 - Android

task1

在很长的 ListView 中记住滚动位置