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

     2023-02-26     98

关键词:

【中文标题】组织一个很长的 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 抱歉,错过了那部分。

Maven执行计划

...utionplan【发布时间】:2012-05-0701:41:04【问题描述】:我有一个很长的构建,其中包含许多步骤、插件和执行,这些步骤、插件和执行配置在大约30个pom中,属于一个复杂的模块化项目。由于构建花费了太多(2h),我想对其进行... 查看详情

phpunit:避免打印很长的输出

...ongoutput【发布时间】:2020-04-2909:26:39【问题描述】:我有一个PHPUnit测试,它检查渲染的HTML输出不包含某个字符串,我使用:publicfunctiontestSomething()$htmlOutput=...;self::assertDoesNotMatchRegularExpression(\' 查看详情

很长的 gradle 构建时间 - Android

...e-Android【发布时间】:2018-12-2205:30:44【问题描述】:我有一个多模块项目。我使用kotlin+dagger2+databindingv2。使用最新的3.2androidstudio。但是每当我通过更改一个模块中的某些内容来执行incrementalbuild时,生成的其他一些模块(不依赖... 查看详情

CreatePipe如何从生命周期很长的控制台应用程序中捕获标准输出?

...【发布时间】:2016-05-2513:24:48【问题描述】:我尝试编写一个测试应用程序来从第三个控制台应用程序的标准输出中捕获文本。我从许多文章中学习了如何使用CreatePipeAPI,并且确 查看详情

iOS - 在横向显示一个很长的垂直堆栈视图

】iOS-在横向显示一个很长的垂直堆栈视图【英文标题】:iOS-displayaverylongverticalstackviewinlandscape【发布时间】:2016-01-0602:11:55【问题描述】:我在尝试以横向模式显示很长的堆栈视图时遇到问题。我已经阅读并观看了一些关于自... 查看详情

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

】在很长的ListView中记住滚动位置【英文标题】:RememberScrollPositioninverylongListView【发布时间】:2020-10-1911:32:57【问题描述】:我的Flutter应用程序中显示了很长的项目列表,该列表由API填充,用户可以选择刷新列表以获取最新信... 查看详情

wordwrap 一个很长的字符串

】wordwrap一个很长的字符串【英文标题】:wordwrapaverylongstring【发布时间】:2010-10-2518:32:54【问题描述】:如何使用自动换行符显示长字符串、网站地址、单词或符号集以保持div宽度?我猜是一种自动换行。通常添加空格是可行... 查看详情

处理运行时间很长的 rake 任务

...发布时间】:2012-04-1006:11:31【问题描述】:我有兴趣运行一个运行时间很长的rake任务,该任务需要数小时才能完成,并且我有兴趣了解处理此问题的最佳实践。我发现的可能解决方案:设置cron作业delayed_job回复cron似乎是一个简... 查看详情

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

】使用BEGIN/END组织SQL代码有啥危害吗?【英文标题】:AnyharminusingBEGIN/ENDtoorganizeSQLcode?使用BEGIN/END组织SQL代码有什么危害吗?【发布时间】:2018-09-2014:54:56【问题描述】:我不太习惯写很长的SP。而且我发现在使用这些宽表时很... 查看详情

平均一个很长的列表[双]而不在 Scala 中获得无穷大

】平均一个很长的列表[双]而不在Scala中获得无穷大【英文标题】:AveragingaverylongList[Double]WithoutgettinginfinityinScala【发布时间】:2018-09-0305:18:47【问题描述】:我有一个很长的双精度列表,我需要平均,但我无法在双精度数据类型... 查看详情

嵌套 ItemsControl 的拉伸高度

...间】:2013-08-2013:42:13【问题描述】:在MainWindow上,我有一个ItemsControl,我将其添加到UserControls,并且说UserControl还包含一个ItemsControl,其中包含其他UserControls。问题是第二个ItemsControl中的许多项目没有显示 查看详情

jenkins~按模块进行构建(代码片段)

...因对于maven项目来说,它可以包含很多子模块,比如你在一个maven项目里做了微服务的开发,很多服务都在一个大项目里(当然,我本人不建议这样设计,建议一个服务是一个项目),这时在jenkins构建时,由于要启动注册中心,... 查看详情

idea导入配置ssm项目,并进行打包

idea确实是一个功能强大的开发工具,但是配置项目太复杂,每次都要花费很长的时间在配置上。关于SSM项目导入,配置,打包,看这篇就够了,百试不爽。  查看详情

如何抑制包含的警告? [复制]

...uplicate]【发布时间】:2017-09-2408:39:08【问题描述】:我有一个使用tinyxml2库的项目。我有一个很长的编译器选项列表,其中列出了-Werror=zero-as-null-pointer-constant。所以,无论我在哪里包含tinyxml2.h,我都有错误:0usedasnullpoin 查看详情

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

...020-12-2109:29:21【问题描述】:我正在尝试使用hbox布局构建一个包含两个组件的面板,其中一个在左侧固定宽度,第二个将包含并排的多个表单,并且应该可以水平滚动。我想将第一个组件锁定在适当的位置,而用户滚动第二个组... 查看详情

内容对齐(代码片段)

...ft;">名称:</span><divstyle="margin-left:50px;">这里是很长很长的内容,需要换行..这里是很长很长的内容,需要换行...这里是很长很长的内容,需要换行..这里是很长很长的内容,需要换行..这里是很长很长的内容,需要换行... 查看详情

如何连接匹配模式的行?

...apattern?【发布时间】:2022-01-1320:48:53【问题描述】:我有一个很大的文件,其中大多数行都很长,但有几行只是几个词:这是一个很长的句子。这是一种短的线。这是一个很长的句子。这是一个很长的句子。这是其他短的线。这... 查看详情

当列表包含另一个列表的 1 个单个项目时,展平嵌套列表

】当列表包含另一个列表的1个单个项目时,展平嵌套列表【英文标题】:Flattennestedlistswhenlistcontains1singleitemwhichisanotherlist【发布时间】:2019-05-0714:35:40【问题描述】:基本上,我正在尝试查看当列表包含1个单个项目(另一个列... 查看详情