Ce document a été traduit par IA. Pour des informations précises, veuillez consulter la version anglaise.
Bloc JS
Introduction
Le Bloc JS est un "bloc de rendu personnalisé" très flexible qui vous permet d'écrire directement du code JavaScript pour générer des interfaces, lier des événements, appeler des API de données ou intégrer des bibliothèques tierces. Il est idéal pour les visualisations personnalisées, les expérimentations temporaires et les scénarios d'extension légers que les blocs intégrés ne peuvent pas couvrir.
API du contexte d'exécution
Le contexte d'exécution du Bloc JS intègre des fonctionnalités courantes que vous pouvez utiliser directement :
ctx.element: Le conteneur DOM du bloc (encapsulé de manière sécurisée en tant qu'ElementProxy), prenant en chargeinnerHTML,querySelector,addEventListener, etc.ctx.requireAsync(url): Charge de manière asynchrone une bibliothèque AMD/UMD via une URL.ctx.importAsync(url): Importe dynamiquement un module ESM via une URL.ctx.openView: Ouvre une vue configurée (fenêtre modale/tiroir latéral/page).ctx.useResource(...)+ctx.resource: Accède aux données en tant que ressource.ctx.i18n.t()/ctx.t(): Fonctionnalité d'internationalisation intégrée.ctx.onRefReady(ctx.ref, cb): Effectue le rendu une fois le conteneur prêt pour éviter les problèmes de synchronisation.ctx.libs.React/ctx.libs.ReactDOM/ctx.libs.antd/ctx.libs.antdIcons/ctx.libs.dayjs/ctx.libs.lodash/ctx.libs.math/ctx.libs.formula: Bibliothèques génériques intégrées telles que React, ReactDOM, Ant Design, les icônes Ant Design, dayjs, lodash, math.js et formula.js, utilisées pour le rendu JSX, la gestion des dates/heures, la manipulation de données et les calculs mathématiques. (ctx.React/ctx.ReactDOM/ctx.antdsont conservés pour des raisons de compatibilité.)ctx.render(vnode): Rend un élément React, une chaîne HTML ou un nœud DOM dans le conteneur par défautctx.element. Les appels multiples réutilisent la même racine React et écrasent le contenu existant du conteneur.
Ajout d'un bloc
Vous pouvez ajouter un Bloc JS à une page ou à une fenêtre modale.

Éditeur et extraits de code
L'éditeur de script du Bloc JS prend en charge la coloration syntaxique, les indications d'erreur et les extraits de code (Snippets) intégrés, vous permettant d'insérer rapidement des exemples courants tels que le rendu de graphiques, la liaison d'événements de bouton, le chargement de bibliothèques externes, le rendu de composants React/Vue, les chronologies, les cartes d'information, etc.
Snippets: Ouvre la liste des extraits de code intégrés. Vous pouvez rechercher et insérer un extrait sélectionné dans l'éditeur de code à la position actuelle du curseur en un seul clic.Run: Exécute directement le code de l'éditeur actuel et affiche les journaux d'exécution dans le panneauLogsen bas. Il prend en charge l'affichage deconsole.log/info/warn/error, et les erreurs sont mises en évidence avec la possibilité de les localiser à la ligne et à la colonne spécifiques.

De plus, vous pouvez directement invoquer l'employé IA "Ingénieur Frontend · Nathan" depuis le coin supérieur droit de l'éditeur. Nathan peut vous aider à écrire ou à modifier des scripts en fonction du contexte actuel. Vous pouvez ensuite "Apply to editor" (Appliquer à l'éditeur) en un clic et exécuter le code pour en voir l'effet. Pour plus de détails, consultez :
Environnement d'exécution et sécurité
- Conteneur : Le système fournit un conteneur DOM sécurisé
ctx.element(ElementProxy) pour le script, qui n'affecte que le bloc actuel et n'interfère pas avec les autres zones de la page. - Bac à sable : Le script s'exécute dans un environnement contrôlé.
window/document/navigatorutilisent des objets proxy sécurisés, permettant l'utilisation des API courantes tout en restreignant les comportements à risque. - Re-rendu : Le bloc se re-rend automatiquement lorsqu'il est masqué puis affiché à nouveau (pour éviter de réexécuter le script de montage initial).
Cas d'utilisation courants (exemples simplifiés)
1) Rendre React (JSX)
2) Modèle de requête API
3) Charger ECharts et effectuer le rendu
4) Ouvrir une vue (tiroir latéral)
5) Lire une ressource et rendre du JSON
Notes
- Il est recommandé d'utiliser des CDN fiables pour charger des bibliothèques externes.
- Conseils d'utilisation des sélecteurs : Privilégiez l'utilisation des sélecteurs de classe (
class) ou d'attribut ([name=...]). Évitez d'utiliser desidfixes pour prévenir les conflits de styles ou d'événements en cas deiddupliqués dans plusieurs blocs ou fenêtres modales. - Nettoyage des événements : Le bloc pouvant être re-rendu plusieurs fois, les écouteurs d'événements doivent être nettoyés ou dédupliqués avant d'être liés pour éviter les déclenchements répétés. Vous pouvez adopter une approche "supprimer puis ajouter", utiliser un écouteur à usage unique, ou ajouter un drapeau pour éviter les doublons.

