将 React 元素、HTML 字符串或 DOM 节点渲染到指定容器中。不传 container 时默认渲染到 ctx.element,并自动继承应用的 ConfigProvider、主题等上下文。
| 场景 | 说明 |
|---|---|
| JSBlock | 渲染区块自定义内容(图表、列表、卡片等) |
| JSField / JSItem / JSColumn | 渲染可编辑字段或表格列的自定义展示 |
| 详情区块 | 自定义详情页字段的展示形式 |
注意:
ctx.render()需要渲染容器。若不传container且ctx.element不存在(如无 UI 的纯逻辑场景),会抛出错误。
| 参数 | 类型 | 说明 |
|---|---|---|
vnode | React.ReactElement | Node | DocumentFragment | string | 要渲染的内容 |
container | Element | DocumentFragment(可选) | 渲染目标容器,默认 ctx.element |
返回值:
ReactDOMClient.Root,便于后续调用 root.render() 更新null| 类型 | 行为 |
|---|---|
React.ReactElement(JSX) | 使用 React 的 createRoot 渲染,具备完整 React 能力,自动继承应用上下文 |
string | 经 DOMPurify 清洗后设置容器的 innerHTML,会先卸载已有 React 根 |
Node(Element、Text 等) | 清空容器后 appendChild 追加,会先卸载已有 React 根 |
DocumentFragment | 片段子节点追加到容器,会先卸载已有 React 根 |
ctx.render() 会替换容器内已有内容,不会追加。ctx.element.innerHTML 已废弃,应统一使用 ctx.render()。ctx.element 为 undefined 的场景(如 ctx.importAsync 加载的模块内),需显式传入 container。ctx.render() 未传 container 时使用ctx.render() 使用