公共组件

NocoBase client v2 内置了一批公共组件。写插件页面、设置页或表单时,可以直接使用这些组件,复用 NocoBase 已经准备好的 UI 和交互。

快速索引

我想要……去哪里看
控制底层全屏扫码器CodeScanner
在 dialog 里放一个标准表单DialogFormLayout
在 drawer 里放一个标准表单DrawerFormLayout
只允许选择 $env 环境变量EnvVariableInput
输入文件大小并统一保存为字节数FileSizeInput
编辑 JSON / JSON5 配置JsonTextArea
密码输入并显示强度提示PasswordInput
从接口异步加载 Select 选项RemoteSelexct
输入框里支持扫码ScanInput
让字段同时支持常量和变量TypedVariableInput
让单行字段支持 {{ $env.X }}{{ $user.name }} 这类变量VariableInput
在 JSON / JSON5 配置中插入变量VariableJsonTextArea
让多行文本支持变量VariableTextArea
给 Collection 做多条件筛选CollectionFilter
把 Collection 筛选面板嵌入页面CollectionFilterPanel
自定义 antd Table 拖拽行SortableRow
自定义 Table 拖拽手柄列SortHandle
在设置页里展示列表、选择行、拖拽排序Table
使用 Ant Design 图标或注册自定义图标Icon
给插件内部扩展项做注册表createFormRegistry

使用方式

在客户端插件中按需引入组件,然后像普通 React 组件一样使用:

import { RemoteSelect, Table } from '@nocobase/client-v2';

function SettingsPage() {
  return (
    <>
      <RemoteSelect request={loadOptions} />
      <Table rowKey="id" columns={columns} dataSource={records} />
    </>
  );
}

选用建议

默认用 React + Antd 写页面就行。遇到下面这些 NocoBase 插件里的高频场景时,再优先查这里的组件:

  • 设置页里要打开 drawer / dialog 表单
  • 表单字段需要插入变量、编辑 JSON、输入文件大小或支持扫码
  • 列表页需要 Collection 筛选或拖拽排序
  • 需要使用 NocoBase 统一图标入口

如果只是普通输入框、按钮、提示信息,直接用 Antd 组件更直接。

相关链接