Ce document a été traduit par IA. Pour des informations précises, veuillez consulter la version anglaise.
ctx.libs
ctx.libs est l'espace de noms unifié pour les bibliothèques intégrées dans RunJS, contenant des bibliothèques couramment utilisées telles que React, Ant Design, dayjs et lodash. Aucun import ou chargement asynchrone n'est requis ; elles peuvent être utilisées directement via ctx.libs.xxx.
Scénarios d'utilisation
Aperçu des bibliothèques intégrées
Alias de niveau supérieur
Pour la compatibilité avec le code hérité, certaines bibliothèques sont également exposées au niveau supérieur : ctx.React, ctx.ReactDOM, ctx.antd et ctx.dayjs. Il est recommandé d'utiliser systématiquement ctx.libs.xxx pour faciliter la maintenance et la recherche dans la documentation.
Chargement différé (Lazy Loading)
lodash, formula et math utilisent le chargement différé : un import dynamique est déclenché uniquement lors du premier accès à ctx.libs.lodash, et le cache est réutilisé par la suite. React, antd, dayjs et antdIcons sont pré-configurés par le contexte et sont disponibles immédiatement.
Exemples
Rendu avec React et Ant Design
Utilisation des Hooks
Utilisation des icônes
Traitement des dates avec dayjs
Fonctions utilitaires avec lodash
Calculs de formules
Expressions mathématiques avec math.js
Précautions
- Mélange avec ctx.importAsync : Si un React externe est chargé via
ctx.importAsync('react@19'), le JSX utilisera cette instance. Dans ce cas, ne le mélangez pas avecctx.libs.antd. Ant Design doit être chargé pour correspondre à cette version de React (ex :ctx.importAsync('antd@5.x'),ctx.importAsync('@ant-design/icons@5.x')). - Instances multiples de React : Si l'erreur "Invalid hook call" se produit ou si le dispatcher de hook est nul, cela est généralement causé par la présence de plusieurs instances de React. Avant de lire
ctx.libs.Reactou d'appeler des Hooks, exécutez d'abordawait ctx.importAsync('react@version')pour vous assurer que la même instance React est partagée avec la page.
Voir aussi
- ctx.importAsync() - Charger des modules ESM externes à la demande (ex : versions spécifiques de React, Vue)
- ctx.render() - Rendre le contenu dans un conteneur

