首页 > 其他分享 >优维低代码:构件编辑器开发

优维低代码:构件编辑器开发

时间:2023-03-17 17:32:11浏览次数:32  
标签:bricks 代码 编辑器 basic 构件 优维低 button

优维低代码:构件编辑器开发_技术交流

优维低代码:构件编辑器开发_技术交流_02

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


连载第四十一期

《高级指引:构件编辑器开发

构件编辑器是用于可视化编排中,实时展示特定构件的低保真线框图的构件。每个构件对应一个构件编辑器,没有编写编辑器的构件则将使用一个默认的基本编辑器。

本文以basic-bricks.general-button 的构件编辑器的开发为例,介绍一个构件编辑器的开发过程。

# 新增一个构件编辑器

  1. 在相关的构件仓库中运行 yarn yo;
  2. 选择 a new editor brick ;
  3. 选择对应的构件包 basic-bricks(可按关键字搜索);
  4. 选择对应的构件 general-button(可按关键字搜索)。

该构件编辑器的相关初始代码就已生成。

# 启动本地打包和服务

  1. 启动构建编辑器的开发模式打包:lerna run start:editors --scope @next-bricks/basic-bricks;
  2. 启动本地服务:yarn serve --local-editors basic-bricks;
  3. 打开本地调试页面:​​http://localhost:8081/​​。

⊙ NOTE

注意:虽然构件和构件编辑器都在构件包中维护,但它们的打包是相互独立的,因此不要试图在构件和构件编辑器之间共享代码。

# 开发

初始化的构件编辑器仅展示一个非常原始的方框和构件别名,而一个好的构件编辑器应该能通过读取它的属性配置来展示该构件的关键 UI 特征。

对于 general-button 这个构件来说,它的关键特征有两个:按钮显示的文本和按钮的类型样式。

因此我们修改 general-button.editor.tsx:

export function GeneralButtonEditor({
nodeUid,
brick,
}: EditorComponentProps): React.ReactElement {
const node = useBuilderNode<GeneralButtonProperties>({ nodeUid });
// 通过 `node.$$parsedProperties` 读取构件的属性配置。
const { buttonName, buttonType } = node.$$parsedProperties;


return (
<EditorContainer nodeUid={nodeUid} brick={brick}>
<div
className={classNames(styles.button, {
[styles.primary]: buttonType === "primary",
})}
>
{buttonName || node.alias}
</div>
</EditorContainer>
);
}

代码修改后,本地调试页面会自动刷新,这时试试在编排中修改该构件的相关属性配置,看看效果。

⊙ NOTE

注意:构件编辑器和普通构件一样使用 CSS Modules 编写样式。另外,别忘了编写单元测试。

标签:bricks,代码,编辑器,basic,构件,优维低,button
From: https://blog.51cto.com/u_15605878/6127714

相关文章

  • 【Linux】Vim编辑器(未完善)
    一、学习建议如果对Linux操作系统还尚未了解,请先学习Linux或了解VMware虚拟机后再学习此内容更好。二、学习目标能够说出vim的三种工作模式能够说出vim对应复......
  • 常用的Vue富文本编辑器:
     Quill:Quill是一个现代化、可定制的富文本编辑器,提供了许多有用的功能,如文本样式、列表、媒体插入等。在Vue中可以使用vue-quill-editor来集成Quill。CKEditor5:CKE......
  • HUSTOJ后台公告KindEditor编辑器中文件上传类型限制修改
    1.进入Ubuntu系统,/home/judge/src/web目录2.搜索找到KindEditor文件夹3.进入PHP文件夹,打开upload_json.php4.按照提示找到限制上传文件类型的代码,添加相应文件扩展名即......
  • UE5 自定义编辑器主题
    UE5新增了Editor->EditorPreference->Appearence->ActiveTheme配置,支持用户自定义颜色主题调到自己看起来舒服就行参考:HowToChangeColorThemei......
  • 【编辑器】常用编程环境使用感受20190804
    一、编辑器1、Vim/Emase又被称之为神器:编辑器之神vs神之编辑器学习使用成本高and定义所有功能2、Sublime/Vscode/Atom现在编辑器,有以下特点:跨平台,颜值高,性能佳3、Note......
  • 计算机网络系统方法:加密构件
    我们一步一步地介绍基于密码学的安全概念。第一步是本节介绍的加密算法--密码器和加密散列--。它们本身并不是一个解决方案,而是可以用来构建解决方案的构件。加密算法的参......
  • NSDT编辑器:Overlay-孪生体
    推荐:将 NSDT场景编辑器 加入你的3D开发工具链场景效果:   属性.type:String孪生体的类型。只读。.overlayId:String孪生体的ID。只读。.layerId:String......
  • 在线编辑器粘贴word图片且图片文件自动上传功能
    ​ ueditor粘贴不能粘贴word中的图片是一个很头疼的问题,在我们的业务场景中客户要求必须使用ueditor并且支持word的图片粘贴,因为这个需求头疼了半个月,因为前端方面因为安......
  • 富文本编辑器粘贴word图片且图片文件自动上传功能
    ​ 1.编辑器修改(可选)1.1在 ueditor/config.json 中添加代码块    /* 上传word配置 */    "wordActionName":"wordupload",/* 执行上传视频的action......
  • HTML编辑器粘贴word图片且图片文件自动上传功能
    ​ 如何做到ueditor批量上传word图片?1、前端引用代码<!DOCTYPE html PUBLIC "-//W3C//DTDXHTML1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml......