Questo documento è stato tradotto dall'IA. Per informazioni accurate, consultare la versione inglese.
RunJS supporta la sintassi JSX, consentendoLe di scrivere codice in modo simile ai componenti React. Il JSX viene compilato automaticamente prima dell'esecuzione.
ctx.libs.React.createElement e ctx.libs.React.Fragment.ctx.libs.React.ctx.importAsync('react@x.x.x'), il JSX passerà all'utilizzo del metodo createElement di quella specifica istanza.RunJS include React e le comuni librerie UI integrate. Può accedervi direttamente tramite ctx.libs senza utilizzare import:
createRoot se necessario)Quando scrive direttamente in JSX, non è necessario destrutturare React. È necessario destrutturarlo da ctx.libs solo quando si utilizzano gli Hook (come useState, useEffect) o i Fragment (<>...</>):
Nota: Il React integrato e il React esterno importato tramite ctx.importAsync() non possono essere mescolati. Se utilizza una libreria UI esterna, anche React deve essere importato dalla stessa fonte esterna.
Quando si carica una versione specifica di React e delle librerie UI tramite ctx.importAsync(), il JSX utilizzerà quell'istanza di React:
Se antd dipende da react/react-dom, può specificare la stessa versione tramite deps per evitare istanze multiple:
Nota: Quando si utilizza un React esterno, anche le librerie UI come antd devono essere importate tramite ctx.importAsync(). Non le mescoli con ctx.libs.antd.
<Button type="primary">Testo</Button><>...</> o <React.Fragment>...</React.Fragment> (richiede la destrutturazione di const { React } = ctx.libs quando si usa Fragment){espressione} in JSX per inserire variabili o operazioni, come {ctx.user.name} o {count + 1}. Non utilizzi la sintassi template {{ }}.{flag && <span>Contenuto</span>} o {flag ? <A /> : <B />}array.map() per restituire un elenco di elementi e si assicuri che ogni elemento abbia una key stabile.