Quelle est la différence entre des événements tels que afterLayout et layout, afterRender et render? Je comprends la différence entre beforeLayout et afterLayout - mais en quoi l'événement layout est-il différent?afterLayout vs mise en page, afterRender vs render, etc. dans ExtJS?
Répondre
Remarque: S'applique à Ext 3.x uniquement. Cela a été répondu en 2010.
Il n'y a pas d'événement 'layout', seulement afterLayout
. De la documentation, afterLayout "se déclenche lorsque les composants de ce conteneur sont organisés par le gestionnaire de disposition associé", ce qui est assez explicite. afterLayout
est uniquement déclenchée par les sous-classes Container qui sont responsables de la disposition des composants enfants. D'autre part, toutes les sous-classes de composants (y compris les conteneurs) déclenchent les événements render
et afterRender
. La différence fondamentale est simplement que afterRender
se déclenche plus tard. render
se déclenche après le rendu du balisage DOM, mais avant tout ce qui peut arriver (comme masquer, désactiver, restaurer l'état, etc.) pendant le processus de rendu. afterRender
incendies comme le tout dernier événement après tout cela est terminé. Pour bien comprendre cela, vous devriez regarder la source de la méthode Ext.Component.render()
, qui montre étape par étape le fonctionnement du processus de rendu et quand ces événements sont déclenchés.