Ten dokument został przetłumaczony przez AI. Aby uzyskać dokładne informacje, zapoznaj się z wersją angielską.
RunJS obsługuje składnię JSX, co pozwala na pisanie kodu podobnego do komponentów React. JSX jest automatycznie kompilowany przed wykonaniem.
ctx.libs.React.createElement oraz ctx.libs.React.Fragment.ctx.libs.React.ctx.importAsync('react@x.x.x'), JSX przełączy się na używanie metody createElement z tej konkretnej instancji.RunJS posiada wbudowany React oraz popularne biblioteki UI. Można uzyskać do nich dostęp bezpośrednio przez ctx.libs bez użycia import:
createRoot, jeśli jest to wymagane)Pisząc bezpośrednio w JSX, nie muszą Państwo destrukturyzować Reacta. Jest to wymagane jedynie w przypadku korzystania z Hooków (takich jak useState, useEffect) lub Fragmentów (<>...</>):
Uwaga: Wbudowany React oraz zewnętrzny React zaimportowany przez ctx.importAsync() nie mogą być mieszane. Jeśli używają Państwo zewnętrznej biblioteki UI, React również musi zostać zaimportowany z tego samego zewnętrznego źródła.
Podczas ładowania określonej wersji Reacta i bibliotek UI za pomocą ctx.importAsync(), JSX będzie korzystać z tej instancji Reacta:
Jeśli antd zależy od react/react-dom, można określić tę samą wersję poprzez deps, aby uniknąć wielu instancji:
Uwaga: Korzystając z zewnętrznego Reacta, biblioteki UI takie jak antd również muszą zostać zaimportowane przez ctx.importAsync(). Nie należy ich mieszać z ctx.libs.antd.
<Button type="primary">Tekst</Button><>...</> lub <React.Fragment>...</React.Fragment> (wymaga destrukturyzacji const { React } = ctx.libs podczas używania Fragmentu){wyrażenie} do wstawiania zmiennych lub operacji, np. {ctx.user.name} lub {count + 1}. Nie należy używać składni szablonów {{ }}.{flag && <span>Treść</span>} lub {flag ? <A /> : <B />}array.map() do zwracania listy elementów i upewnić się, że każdy element posiada stabilny klucz key.