按 URL 动态加载 ESM 模块或 CSS,适用于 RunJS 各场景。需要第三方 ESM 库时使用 ctx.importAsync(),UMD/AMD 库使用 ctx.requireAsync();传入 .css 地址会加载并注入样式。
| 场景 | 说明 |
|---|---|
| JSBlock | 动态加载 Vue、ECharts、Tabulator 等 ESM 库实现自定义图表、表格、看板等 |
| JSField / JSItem / JSColumn | 加载轻量 ESM 工具库(如 dayjs 插件)辅助渲染 |
| 事件流 / 操作事件 | 按需加载依赖后再执行逻辑 |
| 参数 | 类型 | 说明 |
|---|---|---|
url | string | ESM 模块或 CSS 地址。支持简写 <包名>@<版本> 或带子路径 <包名>@<版本>/<文件路径>(如 vue@3.4.0、dayjs@1/plugin/relativeTime.js),会按配置拼接 CDN 前缀;也支持完整 URL。传入 .css 时会加载并注入样式。依赖 React 的库可加 ?deps=react@18.2.0,react-dom@18.2.0 确保与页面共用同一 React 实例。 |
.css URL,加载后注入页面)。vue@3.4.0 实际请求 https://esm.sh/vue@3.4.0。@dnd-kit/core、react-big-calendar)需加 ?deps=react@18.2.0,react-dom@18.2.0,避免与页面 React 实例冲突导致 Invalid hook call。https://esm.sh)/+esm)ctx.importAsync()。用于演示最基础的按包名或完整 URL 动态加载 ESM 模块和 CSS 的用法。
使用 ECharts 绘制一个带柱状图和折线图的销售概览图表。
演示通过 Tabulator 在区块中渲染一个支持分页和行点击事件的数据表格。
展示如何以 ESM 方式加载 FullCalendar 及其插件,并渲染一个基础的月视图日历。
使用 @dnd-kit/core 在区块中实现一个拖拽 Box 到目标区域的最小拖拽示例。
这个示例只依赖 @dnd-kit/core,通过拖拽一个 Box 到指定区域触发提示,演示了在 RunJS 中结合 ctx.importAsync + React 实现最简单的拖拽交互。
基于 dnd-kit 的 core / sortable / utilities 实现一个支持拖拽重排的纵向排序列表。
这个示例基于 @dnd-kit/core、@dnd-kit/sortable 和 @dnd-kit/utilities,实现了一个可拖拽排序的列表,并在拖拽结束后更新顺序并提示“List reordered”。
通过 react-big-calendar 与 date-fns 本地化,在当前区块中渲染一个支持事件展示的日历组件。
使用 frappe-gantt 渲染一个展示任务起止时间与进度的甘特图视图。
利用 @asseinfo/react-kanban 在区块中渲染一个包含 Backlog / Doing 等列的基础看板。
ctx.importAsync() 获得更好的模块语义。?deps=react@18.2.0,react-dom@18.2.0,版本需与页面 React 一致,否则可能报 Invalid hook call。