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