在ExtJS4下,有没有加载外部组件的方法?

在ExtJS4下,有没有加载外部组件的方法?,extjs,extjs4,components,code-reuse,Extjs,Extjs4,Components,Code Reuse,我正在尝试设置ExtJS 4项目,因此我有三个顶级应用程序,例如 /foo/app.js /bar/app.js /baz/app.js 每个“顶级”应用程序都是一个单独的ExtJS应用程序,每个应用程序都有自己的加载程序。在某些情况下,我希望在所有三个应用程序之间共享通用组件,因此我有/components顶级目录 如果我有一个组件名,比如ComponentA /组件/组件a.js 我如何将ComponentA放入所有三个应用程序中,以便单个应用程序可以引用或扩展它?您可以将相同的加载程序添加

我正在尝试设置ExtJS 4项目,因此我有三个顶级应用程序,例如

/foo/app.js
/bar/app.js
/baz/app.js

每个“顶级”应用程序都是一个单独的ExtJS应用程序,每个应用程序都有自己的加载程序。在某些情况下,我希望在所有三个应用程序之间共享通用组件,因此我有
/components
顶级目录

如果我有一个组件名,比如ComponentA

/组件/组件a.js


我如何将ComponentA放入所有三个应用程序中,以便单个应用程序可以引用或扩展它?

您可以将相同的加载程序添加到每个应用程序
app.js
文件中

Ext.Loader.setPath('Common', '../components/');
然后,在定义公共组件时,为它们提供相同的名称空间,并将它们放置在components顶级文件夹中

组件a.js

Ext.define('Common.componenta', {
    extend: 'Ext.panel.Panel',
    title: 'Component A'
});
然后,您可以在每个应用程序中扩展公共名称空间

Ext.define('Foo.panel', {
    extend: 'Common.componenta',
    title: 'Foo Panel'
});

这是最近在Sencha论坛上的一次讨论,更详细地描述了这种模式。谢谢,这比我想象的要直截了当得多。