Avis de traduction IA
Ce document a été traduit par IA. Pour des informations précises, veuillez consulter la version anglaise.
ctx.on()
Abonnez-vous aux événements de contexte (tels que les changements de valeur de champ, les changements de propriété, les rafraîchissements de ressources, etc.) dans RunJS. Les événements sont mappés à des événements DOM personnalisés sur ctx.element ou à des événements du bus d'événements interne de ctx.resource selon leur type.
Scénarios d'utilisation
Définition du type
Événements courants
Règle de mappage des événements : les événements préfixés par
resource:passent parctx.resource.on, tandis que les autres passent généralement par les événements DOM surctx.element(s'il existe).
Exemples
Liaison bidirectionnelle de champ (React useEffect + Nettoyage)
Écoute DOM native (Alternative lorsque ctx.on n'est pas disponible)
Mise à jour de l'interface utilisateur après rafraîchissement de la ressource
Interaction avec ctx.off
- Les écouteurs enregistrés via
ctx.ondoivent être supprimés au moment opportun via ctx.off pour éviter les fuites de mémoire ou les déclenchements en double. - Dans React,
ctx.offest généralement appelé dans la fonction de nettoyage deuseEffect. ctx.offpeut ne pas exister ; il est recommandé d'utiliser le chaînage optionnel :ctx.off?.('eventName', handler).
Remarques
- Annulation appairée : Chaque
ctx.on(eventName, handler)doit avoir unctx.off(eventName, handler)correspondant, et la référence duhandlertransmise doit être identique. - Cycle de vie : Supprimez les écouteurs avant le démontage du composant ou la destruction du contexte pour éviter les fuites de mémoire.
- Disponibilité des événements : Différents types de contextes prennent en charge différents événements. Veuillez vous référer à la documentation spécifique de chaque composant pour plus de détails.
Documentation associée
- ctx.off - Supprimer les écouteurs d'événements
- ctx.element - Conteneur de rendu et événements DOM
- ctx.resource - Instance de ressource et ses méthodes
on/off - ctx.setValue - Définir la valeur d'un champ (déclenche
js-field:value-change)

