Жизненный цикл
Глобальный жизненный цикл
- Starting: Инициализация, бизнес-единицы ещё не созданы.
- Ready: Первая бизнес-единица создана; последующие не повторяют этот этап.
- Rendered: Стандартный UI выполнил первое переключение рендеринга, но не гарантирует готовность всего асинхронного содержимого.
- Steady: Стандартный UI переходит сюда с задержкой после Rendered, не ожидая всех асинхронных задач.
Facade API
const currentStage = univerAPI.getCurrentLifecycleStage()const disposable = univerAPI.addEvent(univerAPI.Event.LifeCycleChanged, ({ stage }) => { console.log(stage)})Что сообщает событие
LifeCycleChanged сообщает глобальный этап Univer. Например, загрузка B после глобального Ready вызывает его onReady(), но не создаёт ещё одно глобальное событие Ready.
При добавлении слушателя его обработчик может сразу получить текущий этап, включая Starting. Чтобы просто узнать текущий этап, вызовите univerAPI.getCurrentLifecycleStage() напрямую.
Чтобы удалить обработчик, используйте возвращенный объект disposable:
disposable.dispose()Хуки жизненного цикла плагинов
Плагин вызывает onStarting() при загрузке, затем проходит этапы до текущего глобального. Выберите этап загрузки B и сравните его вызовы с A.
Синхронные вызовы показаны в замедленном темпе.
Общие плагины загружаются при регистрации; плагины бизнес-типа — обычно до создания первой единицы этого типа. Добавления к уже запущенному типу загружаются отложенной партией. Явные зависимости могут ускорить загрузку.
Каждая партия вызывает хуки синхронно, по этапам и в порядке зависимостей, не ожидая асинхронных задач. Готовность конкретной единицы, DOM или ресурса проверяйте отдельно.
Насколько полезно это руководство?