优维低代码:构件 slot 说明

本文介绍了优维低代码平台中容器构件的slot机制,讲解了如何通过slot实现构件的插槽功能,以及其在布局和业务场景中的应用。示例展示了基本-bricks.micro-view构件的插槽使用,并解释了div为何可以拥有slot以及slot名称为""的特殊用法。同时,文章提到了最新版本对"路由直接嵌套子路由"的支持,进一步优化了代码结构和路由层级。
摘要由CSDN通过智能技术生成

导语

优维低代码技术专栏,是一个全新的、技术为主的专栏,由优维技术委员会成员执笔,基于优维7年低代码技术研发及运维成果,主要介绍低代码相关的技术原理及架构逻辑,目的是给广大运维人提供一个技术交流与学习的平台。


在上一篇《优维低代码:构件事件传递》的技术分享中,我们分享了构件间传递事件常见的业务场景,以及分布调用的方式。下面,我们来讲讲有关容器构件的slot机制。

{
  "brick": "basic-bricks.micro-view",
  "injectDeep": true,
  "slots": {
    "titleBar": {
      "type": "bricks",
      "bricks": [
        {
          "brick": "basic-bricks.page-title",
          "injectDeep": true,
          "properties": {
            "pageTitle": "APP 管理"
          }
        }
      ]
    },
    "content": {
      "type": "bricks",
      "bricks": [
        ...
      ]
    }
  }
}

有些容器构件是提供了 slot 机制的,也即是构件的插槽。插槽的意思是这个构件提供了子构件插入的能力,但插入点的位置会由父构件决定,插槽点用名称来表示。比如 basic-bricks.micro-view 就提供了 3 个插槽:titleBar、toolbar、content,表示左上角标题位置,右上角工具栏位置,内容位置,具体可查看说明文档。

如下为 basic-bricks.micro-view 的插槽示意图:

# div 也有 slot

{
  "brick": "div",
  "slots": {
    "": {
      "type": "routes",
      "routes": [
        ...
      ]
    }
  }
}

大伙在 demo 示例中会看到有不少上述写法,也会有疑问:

  • div 为啥可以有 slots
  • slot 的 key 为啥可以是 ""

解释:其实任何构件都可以有 slot ,如果 slot 名字在构件中找不到定义的话,框架也一样会渲染,按 html 流式布局(从左往右从上往下)排布。因为之前我们 storyboard 编排时候不支持“路由直接嵌套子路由”,所以为了一些代码的复用(比如 sidebar)和路由层级更好,故会特意新增一个 div 的层级,而 slot 一般就写成了 ""

另外:“路由直接嵌套子路由”在新的版本支持了,具体见:RouteConf

{
  "path": "/xxx",
  "type": "routes",
  "routes": [
    {
      "path": "/xxxx/a",
      "bricks": []
    },
    {
      "path": "/xxxx/b",
      "bricks": []
    }
  ]
}

以上就是今天关于优维低代码的分享,希望对你有所收获!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值