Подтвердить что ты не робот

AfterLayout vs layout, afterRender vs render и т.д. в ExtJS?

В чем разница между событиями, такими как afterLayout и макет, afterRender и рендеринг? Я понимаю разницу между beforeLayout и afterLayout - но как отличается событие макета?

4b9b3361

Ответ 1

Примечание. Относится только к Ext 3.x. Ответ был получен в 2010 году.

Нет события "layout", только afterLayout. В документах afterLayout "Выполняется, когда компоненты в этом контейнере организованы соответствующим менеджером компоновки", что довольно понятно. afterLayout запускается только подклассами Container, которые отвечают за установку дочерних компонентов.

С другой стороны, все подклассы Component (включая контейнеры) запускают события render и afterRender. Основное отличие состоит в том, что afterRender срабатывает позже. render срабатывает после завершения разметки DOM, но перед другими вещами, которые могут произойти (например, скрытием, отключением, восстановлением состояния и т.д.) во время процесса рендеринга. afterRender срабатывает как самое последнее событие после завершения всего этого. Чтобы полностью понять это, вы должны посмотреть на источник метода Ext.Component.render(), который показывает шаг за шагом, как работает процесс рендеринга, и когда эти события запущены.