Skip to content
On this page

搭建协议设计

Dooring 可编辑组件 Schema 设计

Schema 分两部分:

  • editData 组件可编辑属性的数组
  • config 组件真正消费的数据

editData 详解

editData 是 组件属性可编辑项的数组, 每一项里面包含了如下字段:

  • key 属性名
  • name: 属性名的中文显示
  • type: 属性的可编辑类型
  • isCrop(可选)
  • cropRate(可选)
  • range(type 为'Radio'或'Select'时的选项数组)
  • 后期可能会扩展(详细结构可参考Dooring 开源版本)

keyname 都可以按照组件属性的语义来定, 这里值得一提的是 type. 不同属性的值类型不同, 所以我们编辑项的 type 也不同, 所有的类型如下:

  • Upload 上传组件
  • Text 文本框
  • RichText 富文本
  • TextArea 多行文本
  • Number 数字输入框
  • DataList 列表编辑器
  • FileList 文件列表编辑器
  • InteractionData 交互设置
  • Color 颜色面板
  • MutiText 多文本
  • Select 选择下拉框
  • Radio 单选框
  • Switch 开关切换
  • CardPicker 卡片面板
  • Table 表格编辑器
  • Pos 坐标编辑器
  • FormItems 表单设计器

更详细的代码可以参考私有化部署版的editor/src/core/FormComponents 目录.

config 详解

config 本质上是一个对象, 也就是组件所能暴露出来的属性集合, 和 editData 数组每一项的key 一致, 如下:

js
{
    cpName: 'Header',
    logoText: '',
    fontSize: 20,
    color: 'rgba(47,84,235,1)',
    height: 60,
    fixTop: false,
    menuList: [
      {
        id: '1',
        title: '首页',
        link: '/'
      },
      {
        id: '2',
        title: '产品介绍',
        link: '/'
      },
    ]
  }

editDataconfig 构成了一个 Dooring 组件的 schema 结构, 所以我们可以发现, 每一个 dooring 组件都具备如下结构:

  • index.tsx 组件主文件(可以集成任何第三方开源库)
  • index.less 组件的样式文件
  • schema.ts 组件的schema(组件描述协议)
    • editData
    • config

当然组件的 schema 也可以根据自己的需求来扩展, 如果在组件设计上有疑问的, 可以随时联系 Dooring团队.

专注 | 高效 | 深耕行业场景