2013-04-17 12 views
7
Ext.define('...', { 
    uses: ['...'], 
}); 

eSencha Ext.define Usi vs Richiede

Ext.define('...', { 
    requires: ['...'], 
}); 

Sono un po 'confuso ... Non hanno un terreno comune a tutti? Quando usiamo l'una o l'altra?

+0

FWIW, Mitchell Simoens ha una buona [post] (https: // sencha.guru/2015/05/21/requiring-classes/) su questo argomento. – arthurakay

risposta

12

è praticamente coperti dalla documentazione:

usi sono dipendenze di classe opzionali che vengono utilizzati dai, ma non richiesto da una classe. Questi possono essere caricati in modo asincrono e non devono essere disponibili per la classe da istanziare.

Ad esempio, se è qualcosa che la classe istanzia Foo nel costruttore, dovrebbe essere in requires.

Se crea un'istanza di Foo in un metodo che potrebbe essere richiamato in seguito dallo sviluppatore, potrebbe andare in uses.

+0

fantastico. esempi molto chiari. – Tom

5

'require' sono necessari per creare una classe, 'use' sono necessari per creare un oggetto di quella classe.

La sequenza di eventi è:

  • Ext.define è chiamato
  • 'richiede' e 'utilizza' vengono accodati per essere caricato in modo asincrono viene creato
  • classe quando tutto il suo 'richiede' sono loaded
  • ascoltatori Ext.onReady vengono chiamati quando tutte le classi 'necessita' e 'usi' vengono caricati