このドキュメントはAIによって翻訳されました。正確な情報については英語版をご参照ください。
RunJSはJSX構文をサポートしており、Reactコンポーネントのようにコードを記述できます。JSXは実行前に自動的にコンパイルされます。
ctx.libs.React.createElement および ctx.libs.React.Fragment にコンパイルされます。ctx.libs.React が使用されます。ctx.importAsync('react@x.x.x') を通じて外部のReactをロードする場合、JSXはそのインスタンスの createElement を使用するように変更されます。RunJSにはReactおよび一般的なUIライブラリが組み込まれており、import なしで ctx.libs から直接使用できます。
createRoot と併用可能)JSXを直接記述する場合、Reactを分割代入(destructure)する必要はありません。Hooks(useState、useEffect など)や Fragment(<>...</>)を使用する場合のみ、ctx.libs から分割代入する必要があります。
注意:組み込みのReactと ctx.importAsync() でインポートした外部のReactを混在させることはできません。外部UIライブラリを使用する場合は、Reactも外部から一括してインポートする必要があります。
ctx.importAsync() を使用して特定のバージョンのReactやUIライブラリをロードすると、JSXはそのReactインスタンスを使用します。
antdがreact/react-domに依存している場合、deps を介して同一バージョンを指定することで、複数のインスタンスが生成されるのを避けることができます。
注意:外部のReactを使用する場合、antdなどのUIライブラリも ctx.importAsync() を通じてインポートする必要があります。ctx.libs.antd と混在させないでください。
<Button type="primary">テキスト</Button><>...</> または <React.Fragment>...</React.Fragment>(Fragmentを使用する場合は const { React } = ctx.libs の分割代入が必要です){式} を使用して変数や演算を挿入します(例:{ctx.user.name}、{count + 1})。{{ }} のようなテンプレート構文は使用しないでください。{flag && <span>コンテンツ</span>} または {flag ? <A /> : <B />}array.map() を使用して要素のリストを返し、各要素に一意の key を設定します。