Un contexte React ne franchit pas une frontière d'îlot
Le piège coûte cher parce qu'il ne se voit pas : tant qu'un seul îlot existe, tout fonctionne.
Ingénierie1 min de lecture
Chaque îlot Astro est sa propre racine de rendu. Deux îlots sur la même page sont donc deux arbres distincts, montés séparément, qui ne partagent rien.
C’est ce qui rend le piège coûteux : un contexte React placé autour d’un îlot fonctionne parfaitement — tant qu’il n’y en a qu’un. Le jour où un second îlot a besoin de la même valeur, il ne la reçoit pas, et rien ne le signale. Pas d’erreur, pas d’avertissement : juste une bascule de thème dans le pied de page qui ignore celle de la barre de navigation.
Ce qui franchit la frontière
Un module. Le bundler ne l’évalue qu’une fois, donc tous les îlots qui l’importent obtiennent la même instance. C’est vrai d’un store nanostores comme d’un simple objet exporté.
Comment on le vérifie
En rendant la même bascule deux fois, à deux endroits de la page, et en écrivant un test qui clique sur l’une pour vérifier que l’autre a suivi. Une propriété qu’on n’exerce pas n’est pas une propriété : c’est une intention.