logologo
Démarrer
Manuel
Développement
Plugins
API
Accueil
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
Démarrer
Manuel
Développement
Plugins
API
Accueil
logologo
Présentation de RunJS
Importation de modules
Rendu dans le conteneur

Variables globales

window
document
navigator

ctx

ctx.blockModel
ctx.collection
ctx.collectionField
ctx.dataSource
ctx.dataSourceManager
ctx.element
ctx.exit()
ctx.exitAll()
ctx.filterManager
ctx.form
ctx.getModel()
ctx.getValue()
ctx.getVar()
ctx.i18n
ctx.importAsync()
ctx.initResource()
ctx.libs
ctx.location
ctx.logger
ctx.makeResource()
ctx.message
ctx.modal
ctx.model
ctx.notification
ctx.off()
ctx.on()
ctx.openView()
ctx.render()
ctx.request()
ctx.requireAsync()
ctx.resource
ctx.route
ctx.router
ctx.setValue()
ctx.sql
ctx.t()
ctx.view
Next PagePrésentation de RunJS
Avis de traduction IA

Ce document a été traduit par IA. Pour des informations précises, veuillez consulter la version anglaise.

#Présentation de RunJS

RunJS est l'environnement d'exécution JavaScript utilisé dans NocoBase pour des scénarios tels que les blocs JS, les champs JS et les actions JS. Le code s'exécute dans un bac à sable (sandbox) restreint, offrant un accès sécurisé à l'API ctx (contexte) et dispose des capacités suivantes :

  • await au niveau supérieur (Top-level await)
  • Importation de modules externes
  • Rendu à l'intérieur des conteneurs
  • Variables globales

#await au niveau supérieur (Top-level await)

RunJS prend en charge l' await au niveau supérieur, éliminant ainsi le besoin d'envelopper le code dans une IIFE.

Non recommandé

async function test() {}
(async () => {
  await test();
})();

Recommandé

async function test() {}
await test();

#Importation de modules externes

  • Utilisez ctx.importAsync() pour les modules ESM (recommandé)
  • Utilisez ctx.requireAsync() pour les modules UMD/AMD

#Rendu à l'intérieur des conteneurs

Utilisez ctx.render() pour restituer du contenu dans le conteneur actuel (ctx.element). Il prend en charge les trois formats suivants :

#Rendu JSX

ctx.render(<button>Bouton</button>);

#Rendu de nœuds DOM

const div = document.createElement('div');
div.innerHTML = 'Hello World';

ctx.render(div);

#Rendu de chaînes HTML

ctx.render('<h1>Hello World</h1>');

#Variables globales

  • window
  • document
  • navigator
  • ctx