Примечание: относится только к Ext 3.x. На этот вопрос ответили в 2010 году.
Событие 'layout' отсутствует, только afterLayout
. Из документов afterLayout «Запускается, когда компоненты в этом контейнере упорядочены связанным менеджером компоновки», что само собой разумеется. afterLayout
запускается только подклассами Container, которые отвечают за размещение дочерних компонентов.
С другой стороны, все подклассы компонентов (включая контейнеры) запускают события render
и afterRender
. Основное отличие состоит в том, что afterRender
срабатывает позже. render
срабатывает после того, как разметка DOM закончит рендеринг, но до того, как это может произойти (например, скрытие, отключение, восстановление состояния и т. Д.) В процессе рендеринга. afterRender
срабатывает как самое последнее событие после всего этого. Чтобы полностью понять это, вы должны взглянуть на источник метода Ext.Component.render()
, который шаг за шагом показывает, как работает процесс рендеринга и когда запускаются эти события.