Detta dokument har översatts av AI. För korrekt information, se den engelska versionen.
RunJS stöder JSX-syntax, vilket gör att ni kan skriva kod på samma sätt som React-komponenter. JSX kompileras automatiskt före körning.
ctx.libs.React.createElement och ctx.libs.React.Fragment.ctx.libs.React efter kompilering.ctx.importAsync('react@x.x.x'), kommer JSX att byta till att använda createElement-metoden från den specifika instansen.RunJS har inbyggt stöd för React och vanliga UI-bibliotek. Ni kan komma åt dem direkt via ctx.libs utan att använda import:
createRoot vid behov)När ni skriver JSX direkt behöver ni inte destrukturera React. Ni behöver endast destrukturera från ctx.libs när ni använder Hooks (som useState, useEffect) eller Fragment (<>...</>):
Observera: Inbyggd React och extern React som importerats via ctx.importAsync() kan inte blandas. Om ni använder ett externt UI-bibliotek måste även React importeras från samma externa källa.
När ni laddar en specifik version av React och UI-bibliotek via ctx.importAsync(), kommer JSX att använda den React-instansen:
Om antd är beroende av react/react-dom kan ni ange samma version via deps för att undvika flera instanser:
Observera: Vid användning av extern React måste även UI-bibliotek som antd importeras via ctx.importAsync(). Blanda dem inte med ctx.libs.antd.
<Button type="primary">Text</Button><>...</> eller <React.Fragment>...</React.Fragment> (kräver destrukturering av const { React } = ctx.libs vid användning av Fragment){uttryck} i JSX för att infoga variabler eller beräkningar, till exempel {ctx.user.name} eller {count + 1}. Använd inte {{ }} mall-syntax.{flag && <span>Innehåll</span>} eller {flag ? <A /> : <B />}array.map() för att returnera en lista med element, och se till att varje element har en stabil key.