Cycle de vie

Cycle de vie global

  • Starting: Initialisation, avant la création d’une unité métier.
  • Ready: La première unité métier est créée ; les suivantes ne relancent pas cette étape.
  • Rendered: Le premier changement de rendu du UI standard est effectué, sans garantir la disponibilité de tout contenu asynchrone.
  • Steady: Le UI standard atteint cette étape après un délai suivant Rendered, sans attendre toutes les tâches asynchrones.

API Facade

TypeScript
const currentStage = univerAPI.getCurrentLifecycleStage()const disposable = univerAPI.addEvent(univerAPI.Event.LifeCycleChanged, ({ stage }) => {  console.log(stage)})

Ce que signale l’événement

LifeCycleChanged signale l’étape globale de Univer. Par exemple, charger B après le Ready global appelle son onReady(), sans émettre un nouvel événement global Ready.

À l’ajout d’un écouteur, son callback peut recevoir immédiatement l’étape actuelle, y compris Starting. Pour simplement connaître cette étape, appelez directement univerAPI.getCurrentLifecycleStage().

Pour supprimer un écouteur, utilisez l’objet disposable renvoyé :

TypeScript
disposable.dispose()

Hooks de cycle de vie des plugins

Un plugin exécute onStarting() à son chargement, puis rattrape l’étape globale actuelle. Choisissez quand charger B pour comparer ses appels avec ceux de A.

Charger B à · Rendered
StartingGlobalPlugin ANon chargéChargerStartingReadyRenderedSteadyPlugin BNon chargéChargerStartingReadyRenderedSteady
Global: StartingGlobal: Starting · 1 / 14

Lecture ralentie pour montrer les appels synchrones.

Les plugins généraux se chargent à l’enregistrement ; les plugins métier, généralement avant la construction de la première unité de leur type. Les ajouts à un type déjà démarré sont chargés en lot différé. Les dépendances explicites peuvent avancer le chargement.

Chaque lot appelle les hooks de façon synchrone, par étape et dans l’ordre des dépendances, sans attendre les tâches asynchrones. Vérifiez chaque unité, élément DOM ou ressource avant de l’utiliser.

Que pensez-vous de ce guide ?

© 2026 DreamNum Co., Ltd.