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