Ce document a été traduit par IA. Pour des informations précises, veuillez consulter la version anglaise.
Une instance ElementProxy pointant vers le conteneur DOM du bac à sable (sandbox), servant de cible de rendu par défaut pour ctx.render(). Elle est disponible dans les scénarios disposant d'un conteneur de rendu, tels que JSBlock, JSField, JSItem et JSColumn.
| Scénario | Description |
|---|---|
| JSBlock | Le conteneur DOM du bloc, utilisé pour rendre le contenu personnalisé du bloc. |
| JSField / JSItem / FormJSFieldItem | Le conteneur de rendu pour un champ ou un élément de formulaire (généralement un <span>). |
| JSColumn | Le conteneur DOM pour une cellule de tableau, utilisé pour rendre le contenu personnalisé d'une colonne. |
Remarque :
ctx.elementest uniquement disponible dans les contextes RunJS possédant un conteneur de rendu. Dans les contextes sans interface utilisateur (UI), comme la logique purement backend, il peut êtreundefined. Il est recommandé d'effectuer une vérification de valeur nulle avant toute utilisation.
Recommandation : Tout rendu doit être effectué via ctx.render(). Évitez d'utiliser directement les API DOM de ctx.element (par exemple, innerHTML, appendChild, querySelector, etc.).
| Avantage | Description |
|---|---|
| Sécurité | Contrôle de sécurité centralisé pour éviter les failles XSS et les opérations DOM inappropriées. |
| Support React | Support complet du JSX, des composants React et de leurs cycles de vie. |
| Héritage de contexte | Hérite automatiquement du ConfigProvider de l'application, des thèmes, etc. |
| Gestion des conflits | Gère automatiquement la création et la suppression de la racine React pour éviter les conflits entre instances multiples. |
ctx.element.innerHTMLest obsolète. Veuillez utiliserctx.render()à la place.
Lorsque vous devez ouvrir un Popover en utilisant l'élément actuel comme ancre, vous pouvez accéder à ctx.element?.__el pour obtenir le DOM brut comme cible (target) :
Utilisez
__eluniquement dans des scénarios tels que « l'utilisation du conteneur actuel comme ancre » ; ne manipulez pas le DOM directement dans les autres cas.
ctx.render(vnode) est appelé sans argument container, le rendu s'effectue par défaut dans le conteneur ctx.element.ctx.element est manquant et qu'aucun container n'est fourni, une erreur sera générée.ctx.render(vnode, customContainer).ctx.element est destiné à un usage interne par ctx.render(). Il n'est pas recommandé d'accéder directement à ses propriétés ou méthodes, ni de les modifier.ctx.element sera undefined. Assurez-vous que le conteneur est disponible ou passez manuellement un container avant d'appeler ctx.render().innerHTML / outerHTML dans ElementProxy soient nettoyés via DOMPurify, il est toujours recommandé d'utiliser ctx.render() pour une gestion unifiée du rendu.