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

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

相关文章

java中新生代和老生代的关系说明

《java中新生代和老生代的关系说明》:本文主要介绍java中新生代和老生代的关系说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、内存区域划分新生代老年代二、对象生命周期与晋升流程三、新生代与老年代的协作机制1. 跨代引用处理2. 动态年龄判定3. 空间分

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

MySQL之InnoDB存储引擎中的索引用法及说明

《MySQL之InnoDB存储引擎中的索引用法及说明》:本文主要介绍MySQL之InnoDB存储引擎中的索引用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录1、背景2、准备3、正篇【1】存储用户记录的数据页【2】存储目录项记录的数据页【3】聚簇索引【4】二

mysql中的数据目录用法及说明

《mysql中的数据目录用法及说明》:本文主要介绍mysql中的数据目录用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、版本3、数据目录4、总结1、背景安装mysql之后,在安装目录下会有一个data目录,我们创建的数据库、创建的表、插入的

ModelMapper基本使用和常见场景示例详解

《ModelMapper基本使用和常见场景示例详解》ModelMapper是Java对象映射库,支持自动映射、自定义规则、集合转换及高级配置(如匹配策略、转换器),可集成SpringBoot,减少样板... 目录1. 添加依赖2. 基本用法示例:简单对象映射3. 自定义映射规则4. 集合映射5. 高级配置匹

MySQL数据库的内嵌函数和联合查询实例代码

《MySQL数据库的内嵌函数和联合查询实例代码》联合查询是一种将多个查询结果组合在一起的方法,通常使用UNION、UNIONALL、INTERSECT和EXCEPT关键字,下面:本文主要介绍MyS... 目录一.数据库的内嵌函数1.1聚合函数COUNT([DISTINCT] expr)SUM([DISTIN

Java实现自定义table宽高的示例代码

《Java实现自定义table宽高的示例代码》在桌面应用、管理系统乃至报表工具中,表格(JTable)作为最常用的数据展示组件,不仅承载对数据的增删改查,还需要配合布局与视觉需求,而JavaSwing... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

Go语言代码格式化的技巧分享

《Go语言代码格式化的技巧分享》在Go语言的开发过程中,代码格式化是一个看似细微却至关重要的环节,良好的代码格式化不仅能提升代码的可读性,还能促进团队协作,减少因代码风格差异引发的问题,Go在代码格式... 目录一、Go 语言代码格式化的重要性二、Go 语言代码格式化工具:gofmt 与 go fmt(一)