Dokumen ini diterjemahkan oleh AI. Untuk informasi yang akurat, silakan merujuk ke versi bahasa Inggris.
RunJS mendukung sintaks JSX, yang memungkinkan Anda menulis kode seperti komponen React. JSX akan dikompilasi secara otomatis sebelum dijalankan.
ctx.libs.React.createElement dan ctx.libs.React.Fragment.ctx.libs.React akan digunakan secara otomatis.ctx.importAsync('react@x.x.x'), JSX akan beralih menggunakan metode createElement dari instans tersebut.RunJS menyertakan React dan pustaka UI umum secara bawaan. Anda dapat mengaksesnya secara langsung melalui ctx.libs tanpa perlu menggunakan import:
createRoot jika diperlukan)Saat menulis JSX secara langsung, Anda tidak perlu melakukan destrukturisasi React. Anda hanya perlu melakukan destrukturisasi dari ctx.libs saat menggunakan Hooks (seperti useState, useEffect) atau Fragment (<>...</>):
Catatan: React bawaan dan React eksternal yang diimpor melalui ctx.importAsync() tidak dapat dicampur. Jika Anda menggunakan pustaka UI eksternal, React juga harus diimpor dari sumber eksternal yang sama.
Saat memuat versi tertentu dari React dan pustaka UI melalui ctx.importAsync(), JSX akan menggunakan instans React tersebut:
Jika antd bergantung pada react/react-dom, Anda dapat menentukan versi yang sama melalui deps untuk menghindari adanya beberapa instans:
Catatan: Saat menggunakan React eksternal, pustaka UI seperti antd juga harus diimpor melalui ctx.importAsync(). Jangan mencampurnya dengan ctx.libs.antd.
<Button type="primary">Teks</Button><>...</> atau <React.Fragment>...</React.Fragment> (memerlukan destrukturisasi const { React } = ctx.libs saat menggunakan Fragment){ekspresi} dalam JSX untuk memasukkan variabel atau operasi, seperti {ctx.user.name} atau {count + 1}; jangan gunakan sintaks templat {{ }}.{flag && <span>Konten</span>} atau {flag ? <A /> : <B />}array.map() untuk mengembalikan daftar elemen, dan pastikan setiap elemen memiliki key yang stabil.