为什么视图的别名定义为“widget.myxtype”?

时间:2011-09-11 07:46:55

标签: extjs4

我想知道:为什么我们定义的新小部件的别名总是定义为“widget.myxtype” - “小部件”的意义是什么?

2 个答案:

答案 0 :(得分:3)

Alias属性是在ExtJs4中新引入的,并且是以前版本中“xtype”的替代。别名中指定的“widget”有两个我能想到的重要性:

  1. 利用简写
  2. 代码可读性和理解
  3. 您可以使用速记来创建窗口小部件。例如,如果您有一个名为widget.myview的小部件,则可以按如下方式创建它的实例:

    var view = Ext.widget('myview'); 
    

    如果您没有在别名中添加“小部件”前缀,则只能通过以下方式实例化:

    var view = Ext.create('xyz.myview');
    

    此外,create方法可用于创建使用Ext.define()定义的任何类的实例。

    当您为“小部件”添加前缀时,您确定它们将处理UI。这有助于更好地理解和阅读代码(当您看到Ext.widget('abc')时,您知道它的窗口,按钮或某些UI组件)。

    <强>更新 别名属性由非UI组件的其他类使用。但是,您只会看到UI组件的“窗口小部件”,因此将其表示为视图或UI(这就是为什么他们只有窗口小部件的简写)。其他ExtJS类也有别名。例如,所有Proxy类都将具有“proxy”前缀。但就目前而言,“代理”前缀的唯一意义是可读性。

答案 1 :(得分:2)

我认为它是一种命名空间:你也可以为代理,读者和编写者定义别名,它们分别需要以'proxy。','reader'为前缀。和'作家'。 :

Ext.define('App.proxy.MyProxy', {
  extend: 'Ext.data.proxy.Rest',
  alias: ['proxy.my_proxy'],

Ext.define('App.reader.MyReader', {
  extend: 'Ext.data.reader.Json',
  alias: ['reader.my_reader'],

Ext.define('App.reader.MyWriter', {
  extend: 'Ext.data.writer.Json',
  alias: ['writer.my_writer'],

然后你可以用:

来引用它们
    proxy: {
      type: 'my_proxy',
      url: '/data/library_store.json',
      reader: {
        type: 'my_reader',
        ...
      },
      writer: 'my_writer'