优维低代码:构件基本说明

2023-11-06 12:59

本文主要是介绍优维低代码:构件基本说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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


在上一篇中,我们分享了在编排详解中是如何进行菜单配置的,本期我们将继续来解读编排详解中的构件基本说明。

# 构件配置

"bricks": [{"brick": "basic-bricks.micro-view","slots": {"titleBar": {"type": "bricks","bricks": [{"brick": "basic-bricks.page-title","properties": {"pageTitle": "APP 管理"}}]},"content": {"type": "bricks","bricks": [{"template": "cmdb-instances.instance-list","params": {"objectId": "APP","detailUrlTemplates": {"APP": "${APP.homepage}/${instanceId}"},"presetConfigs": {"fieldIds": ["name", "_hierarchy", "businesses", "owner"]}}}]}}}
]

我们开始进入深水区,bricks是一个有序数组,表示一个页面可以有多个构件组成。

我们先来看basic-bricks.micro-view这个构件,将他的配置抽离出来解释:

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

◆ brick:表示使用的是哪个构件,其命名格式为
BRICK-PACKAGE-NAME.BRICK-NAME。在原子构件包 及 业务构件包可以查阅到我们目前支持的所有构件

  • 这里我们也可以直接写 html 原生的 tag,比如 div、span、h1 等
  • basic-bricks.micro-view是一个页面框架构件容器,一般在所有页面的最外层都会有这么一个构件,这样可以保证页面的框架布局(如布局位置、间距等),确保标准一致

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

  • 注意,如果你写了一个不存在的插槽点名称的话,也没关系,会自动追加

◆ properties:构件的参数配置,具体查看各个构件的说明

  • 如果构件是原生 html 标签,比如 div,他的properties用小写驼峰来作为 key,比如 style、textContent 等

# 模板构件

{"template": "cmdb-instances.instance-list","params": {"objectId": "APP","detailUrlTemplates": {"APP": "${APP.homepage}/#{instanceId}"},"presetConfigs": {"fieldIds": ["name", "_hierarchy", "businesses", "owner"]}}
}

大伙可能也发现,在bricks还有另外一种不同的写法,这种叫构件模板(Legacy)他是由多个 brick 封装而成的。

  • template:模板是用template来作为 key 的,而不是brick
  • params:模板的参数是params,而不是properties

# provider 构件

"bricks": [{"brick": "providers-of-cmdb.cmdb-object-api-get-object-all","bg": true,},{"brick": "presentational-bricks.brick-utils","bg": true,},{"brick": "providers-of-cmdb.instance-api-get-detail","bg": true,},...
]

provider 构件是访问后台接口或纯逻辑处理的一种特殊构件,它不会有实际可见的页面,一个provider构件就对应一个后台接口,是给其他构件提供数据的,详细使用请见[构件参数传递](
/next-docs/docs/micro-app/brick-property#参数来源于 useresolves(后台接口))。

  • bg:表示该构件会被放到一个看不见的背景(background)容器里
  • properties:同样 provider 构件也可以设置其properties,里面只有一个唯一参数args。
{"brick": "providers-of-cmdb.cmdb-object-api-get-object-all","bg": true,"injectDeep": true,"properties": {"args": []}
}

更多 provider 说明见Provider 构件,另外,Provider 列表页面列举了当前框架内置的 provider 构件。

在bricks里面去定义provider是之前的写法,新的写法可以更简洁,直接在路由层级定义。如:

{"path": "${APP.homepage}/demo/cmdb-instance-crud/:instanceId","providers": ["providers-of-cmdb.cmdb-object-api-get-object-all","providers-of-cmdb.instance-api-get-detail"],"bricks": [...]
}

本期低代码技术干货就分享到这里!

 

这篇关于优维低代码:构件基本说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/356776

相关文章

python使用Akshare与Streamlit实现股票估值分析教程(图文代码)

《python使用Akshare与Streamlit实现股票估值分析教程(图文代码)》入职测试中的一道题,要求:从Akshare下载某一个股票近十年的财务报表包括,资产负债表,利润表,现金流量表,保存... 目录一、前言二、核心知识点梳理1、Akshare数据获取2、Pandas数据处理3、Matplotl

Django开发时如何避免频繁发送短信验证码(python图文代码)

《Django开发时如何避免频繁发送短信验证码(python图文代码)》Django开发时,为防止频繁发送验证码,后端需用Redis限制请求频率,结合管道技术提升效率,通过生产者消费者模式解耦业务逻辑... 目录避免频繁发送 验证码1. www.chinasem.cn避免频繁发送 验证码逻辑分析2. 避免频繁

精选20个好玩又实用的的Python实战项目(有图文代码)

《精选20个好玩又实用的的Python实战项目(有图文代码)》文章介绍了20个实用Python项目,涵盖游戏开发、工具应用、图像处理、机器学习等,使用Tkinter、PIL、OpenCV、Kivy等库... 目录① 猜字游戏② 闹钟③ 骰子模拟器④ 二维码⑤ 语言检测⑥ 加密和解密⑦ URL缩短⑧ 音乐播放

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

mybatis-plus QueryWrapper中or,and的使用及说明

《mybatis-plusQueryWrapper中or,and的使用及说明》使用MyBatisPlusQueryWrapper时,因同时添加角色权限固定条件和多字段模糊查询导致数据异常展示,排查发... 目录QueryWrapper中or,and使用列表中还要同时模糊查询多个字段经过排查这就导致只要whe

Python实现MQTT通信的示例代码

《Python实现MQTT通信的示例代码》本文主要介绍了Python实现MQTT通信的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 安装paho-mqtt库‌2. 搭建MQTT代理服务器(Broker)‌‌3. pytho

SpringBoot改造MCP服务器的详细说明(StreamableHTTP 类型)

《SpringBoot改造MCP服务器的详细说明(StreamableHTTP类型)》本文介绍了SpringBoot如何实现MCPStreamableHTTP服务器,并且使用CherryStudio... 目录SpringBoot改造MCP服务器(StreamableHTTP)1 项目说明2 使用说明2.1

MySQL进行数据库审计的详细步骤和示例代码

《MySQL进行数据库审计的详细步骤和示例代码》数据库审计通过触发器、内置功能及第三方工具记录和监控数据库活动,确保安全、完整与合规,Java代码实现自动化日志记录,整合分析系统提升监控效率,本文给大... 目录一、数据库审计的基本概念二、使用触发器进行数据库审计1. 创建审计表2. 创建触发器三、Java

JAVA覆盖和重写的区别及说明

《JAVA覆盖和重写的区别及说明》非静态方法的覆盖即重写,具有多态性;静态方法无法被覆盖,但可被重写(仅通过类名调用),二者区别在于绑定时机与引用类型关联性... 目录Java覆盖和重写的区别经常听到两种话认真读完上面两份代码JAVA覆盖和重写的区别经常听到两种话1.覆盖=重写。2.静态方法可andro

MySql基本查询之表的增删查改+聚合函数案例详解

《MySql基本查询之表的增删查改+聚合函数案例详解》本文详解SQL的CURD操作INSERT用于数据插入(单行/多行及冲突处理),SELECT实现数据检索(列选择、条件过滤、排序分页),UPDATE... 目录一、Create1.1 单行数据 + 全列插入1.2 多行数据 + 指定列插入1.3 插入否则更