【问题标题】:Creating a separate component for every item that makes up a parent component?为构成父组件的每个项目创建一个单独的组件?
【发布时间】:2015-10-20 06:51:59
【问题描述】:

我希望对创建新的 xtypes 有所了解。我目前一直在为组成我需要的完整 UI 组件的每个部分创建一个新的 xtype,但我认为我可能过度设计它。

例如,如果我需要创建一个包含表单的窗口,该表单又包含一个字段集,我一直在创建一个单独的窗口(新 xtype)、一个表单(新 xtype)、一个字段集(新 xtype)并带来这些都使用 Items 数组。

当然,这允许我在另一个窗口中重复使用表单,因为它是一个单独的 xtype,并且字段集也可以重复使用。

所以我想只创建 1 个“xtype” - 窗口并使用 Items 放置我所有额外的位,而不是实际为这些项目创建单独的 xtypes。这是推荐的吗?

现在,我似乎至少有两个文件(窗口和组件,如表单、网格等)

我的新窗口 xtype 并没有真正做太多,它很空。它只是添加我创建的新 xtypes。

我认为它归结为创建 1 个 xtype 并将我所有必要的组件直接放在此文件中,因此我将有 1 个窗口“AddCustomerWindow”或采取另一条路线,在那里我至少有 2 个文件(有时更多)我会有一个 AddCustomerWindow、AddCustomerForm、AddCustomerFieldset

【问题讨论】:

  • 虽然将这些物品放在物品中肯定会有点不整洁。也许我可以在 InitComponent 和一些返回每个部分的函数中实现 Ext.Apply ....,例如“getForm”、“getFormFields”、“getButtons”等——好选择吗?
  • 我想你的意思是新的 xtype - 新的类。仅为可重用组件创建单独的类,如果您有仅在一个视图中使用的表单,那么创建单独的类是不好的做法。在可能的情况下尝试使用 xtypes(自创组件或 extjs-native)——它会对性能产生积极影响,而组件只有在需要时才会实际创建
  • 没有正确或错误的答案。为您的项目做任何“有意义”的事情。您不希望在单个类下拥有大量配置对象,但您可能也不希望为您使用的每个组件创建一个新的子类。以你认为合适的方式平衡它。

标签: javascript extjs extjs4 extjs4.2 extjs5


【解决方案1】:

如果需要在很多地方重复使用内部项目,那么可以为它们创建新的分离 xtype。如果它们不可重新密封,则这将成为额外代码/额外文件,在这种情况下,您可以直接在窗口中写入所有项目。

【讨论】:

  • 实际上您可以在单独的文件中编写类并在没有任何 xtype 的情况下重新使用它们。 xtype 的主要特点是惰性对象创建。因此,通过 xtype 添加到视图的组件将仅在需要时实例化。这将有助于提高应用程序的性能。所以正确的答案是:如果你需要重用一些组件,把它们放在单独的类中,如果你需要懒惰地创建它们,那么提供xtype。
  • 感谢大家的cmets。我现在将开始使用 1 个文件,除非我需要重复使用
猜你喜欢
  • 1970-01-01
  • 2014-08-06
  • 1970-01-01
  • 1970-01-01
  • 2022-01-08
  • 1970-01-01
  • 2014-09-21
  • 2023-01-26
  • 2018-04-10
相关资源
最近更新 更多