このドキュメントはAIによって翻訳されました。不正確な情報については、英語版をご参照ください
JS Blockは、非常に柔軟な「カスタムレンダリングブロック」です。JavaScriptスクリプトを直接記述することで、インターフェースの生成、イベントのバインド、データAPIの呼び出し、サードパーティライブラリの統合が可能です。組み込みブロックでは対応が難しい、パーソナライズされた可視化、一時的な試行、軽量な拡張といったシナリオに適しています。
JS Blockのランタイムコンテキストには一般的な機能が注入されており、直接使用できます。
ctx.element:ブロックのDOMコンテナ(ElementProxyとして安全にラップされています)で、innerHTML、querySelector、addEventListenerなどをサポートしています。ctx.requireAsync(url):URLを指定してAMD/UMDライブラリを非同期でロードします。ctx.importAsync(url):URLを指定してESMモジュールを動的にインポートします。ctx.openView:設定済みのビュー(ポップアップ/ドロワー/ページ)を開きます。ctx.useResource(...) + ctx.resource:リソースとしてデータにアクセスします。ctx.i18n.t() / ctx.t():組み込みの国際化機能です。ctx.onRefReady(ctx.ref, cb):コンテナの準備ができてからレンダリングすることで、タイミングの問題を回避します。ctx.libs.React / ctx.libs.ReactDOM / ctx.libs.antd / ctx.libs.antdIcons / ctx.libs.dayjs:React、ReactDOM、Ant Design、Ant Design Icons、dayjsなどの汎用ライブラリが組み込まれており、JSXレンダリングや時間処理に使用できます。(ctx.React / ctx.ReactDOM / ctx.antdは互換性のために残されています。)ctx.render(vnode):React要素、HTML文字列、またはDOMノードをデフォルトコンテナctx.elementにレンダリングします。複数回呼び出しても同じReact Rootが再利用され、コンテナの既存コンテンツは上書きされます。
JS Blockのスクリプトエディターは、構文ハイライト、エラーヒント、組み込みのコードスニペット(Snippets)をサポートしており、チャートのレンダリング、ボタンイベントのバインド、外部ライブラリのロード、React/Vueコンポーネントのレンダリング、タイムライン、情報カードなどの一般的な例を素早く挿入できます。
Snippets:組み込みのコードスニペットリストを開きます。検索して、選択したスニペットをコード編集エリアの現在のカーソル位置にワンクリックで挿入できます。Run:現在エディター内のコードを直接実行し、実行ログを下部のLogsパネルに出力します。console.log/info/warn/errorの表示をサポートしており、エラーはハイライトされ、特定の行と列に移動できます。
さらに、エディターの右上からAI従業員「フロントエンドエンジニア・Nathan」を直接呼び出すことができます。Nathanは現在のコンテキストに基づいてスクリプトの作成や修正をサポートしてくれます。ワンクリックで「Apply to editor」を適用し、実行して効果を確認できます。詳細は以下をご覧ください。
ctx.element(ElementProxy)を提供します。これは現在のブロックのみに影響し、ページの他の領域には干渉しません。window/document/navigatorは安全なプロキシオブジェクトを使用し、一般的なAPIは利用可能ですが、リスクのある動作は制限されます。classまたは[name=...]属性セレクターを優先してください。複数のブロックやポップアップでidが重複し、スタイルやイベントの競合が発生するのを避けるため、固定のidの使用は避けてください。