Ce document a été traduit par IA. Pour des informations précises, veuillez consulter la version anglaise.
RunJS prend en charge la syntaxe JSX, ce qui vous permet d'écrire du code de la même manière que des composants React. Le JSX est automatiquement compilé avant l'exécution.
ctx.libs.React.createElement et ctx.libs.React.Fragment.ctx.libs.React après compilation.ctx.importAsync('react@x.x.x'), le JSX passera à l'utilisation de la méthode createElement de cette instance spécifique.RunJS inclut React et des bibliothèques UI courantes de manière intégrée. Vous pouvez y accéder directement via ctx.libs sans utiliser import :
createRoot si nécessaire)Lorsque vous écrivez du JSX directement, vous n'avez pas besoin de déstructurer React. Vous ne devez déstructurer à partir de ctx.libs que lors de l'utilisation de Hooks (tels que useState, useEffect) ou de Fragment (<>...</>) :
Note : Le React intégré et le React externe importé via ctx.importAsync() ne peuvent pas être mélangés. Si vous utilisez une bibliothèque UI externe, React doit également être importé depuis la même source externe.
Lors du chargement d'une version spécifique de React et de bibliothèques UI via ctx.importAsync(), le JSX utilisera cette instance de React :
Si antd dépend de react/react-dom, vous pouvez spécifier la même version via deps pour éviter les instances multiples :
Note : Lors de l'utilisation d'un React externe, les bibliothèques UI comme antd doivent également être importées via ctx.importAsync(). Ne les mélangez pas avec ctx.libs.antd.
<Button type="primary">Texte</Button><>...</> ou <React.Fragment>...</React.Fragment> (nécessite la déstructuration const { React } = ctx.libs lors de l'utilisation de Fragment){expression} dans le JSX pour insérer des variables ou des opérations, comme {ctx.user.name} ou {count + 1}. N'utilisez pas la syntaxe de template {{ }}.{flag && <span>Contenu</span>} ou {flag ? <A /> : <B />}array.map() pour retourner une liste d'éléments, et assurez-vous que chaque élément possède une key stable.