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
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é :
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.
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 ?