afterLayout vs layout, afterRender vs render и т. д. в ExtJS? - PullRequest
16 голосов
/ 07 августа 2010

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

1 Ответ

26 голосов
/ 08 августа 2010

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

Событие 'layout' отсутствует, только afterLayout. Из документов afterLayout «Запускается, когда компоненты в этом контейнере упорядочены связанным менеджером компоновки», что само собой разумеется. afterLayout запускается только подклассами Container, которые отвечают за размещение дочерних компонентов.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...