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

Отдаёт в расширение список детей ноды, чтобы оно могло проставить правильных родителей.

FAQ