class UI/DevtoolsHook
Методы
- injectHook
При вызове пытается найти объект, внедрённый расширением. Если находит, то в расширение начинает передаваться отладочная информация.
- onEndCommit
Сообщает в расширение о завершении работы над нодой. Количество вызовов соответствует onStartCommit.
- onEndLifecycle
Сообщает в расширение о завершении выполнения хука жизненного цикла (кроме _beforeMount и _beforeUnmount). Вызывается ровно один раз для одного хука.
- onEndSync
Сообщает в расширение о завершении синхронизации. Для одного корня вызывается один раз за синхронизацию.
- onStartCommit
Сообщает в расширение о старте работы над нодой. Нельзя вызывать несколько раз подряд для одной ноды,
но в рамках одной синхронизации для одной ноды может быть несколько пар onStartCommit-onEndCommit.
Несколько пар могут возникнуть в следующих ситуациях:
1) Контрол строился асинхронно.
2) Нода обходилась дважды: при обходе родителя и просто при обходе дерева.
- onStartLifecycle
Сообщает в расширение о старте выполнения хука жизненного цикла (кроме _beforeMount и _beforeUnmount). Вызывается ровно один раз для одного хука.
_beforeMount и _beforeUnmount на данный момент исключаются, потому что они попадают в commit'ы, но в будущем можно будет их обернуть, чтобы более точно замерять время.
Оборачивание обязательно должно происходить с доработкой расширения, иначе там время будет завышено.
- onStartSync
Сообщает в расширение о старте синхронизации. Должен вызываться всякий раз, когда начинается работа над корнем.
В данный момент вызывается в таких местах:
1) Перед построением нового корня.
2) Перед перестроением корня.
3) Перед удалением корня.
4) Перед вызовом хуков ЖЦ и передачей корня в движок (на данный момент, inferno).
Может вызываться несколько раз для одной синхронизации из-за асинхронного построения.
Допустим, есть 2 корня - А и Б. Внутри корня А один из контролов начал асинхронную загрузку, синхронизация
прерывается на этом месте и ждёт его. onEndSync здесь не вызывается для удобства отображения - так в профиле будет заметно
где происходит загрузка данных.
В это время корень Б может провести синхронизацию, позовётся новая пара onStartSync-onEndSync.
После прихода данных корень А продолжит синхронизацию, в этот момент должен позваться новый onStartSynс, и если синхронизация
продолжится без прерываний, то в итоге позовётся onEndSync.
- saveChangedProps
Если на странице есть расширение, то запоминает названия изменившихся свойств.
При ближайшем вызове endCommit для этого контрола массив свойств будет передан в расширение.
- saveChildren
Отдаёт в расширение список детей ноды, чтобы оно могло проставить правильных родителей.