Retour à la leçon
Mission

Mission : un thème modifié depuis n'importe où

Sécuriser un provide/inject de thème mutable et non typé, en le rendant en lecture seule et sans collision de clé.

Contexte

Dans une application, App.vue fait provide('theme', theme)theme est une ref('clair') brute, sans fonction dédiée. Un widget profondément imbriqué fait const theme = inject('theme'); theme.value = 'sombre' directement pour changer le thème. Une bibliothèque tierce récemment ajoutée au projet utilise elle aussi la chaîne 'theme' comme clé de provide pour ses propres besoins internes, et le thème de l'application se met parfois à changer de façon totalement imprévisible.