7

优维低代码:解析构件开发 Step by Step

 1 year ago
source link: https://studygolang.com/articles/35646
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

优维低代码:解析构件开发 Step by Step

EASYOPS_youwei · 大约3小时之前 · 43 次点击 · 预计阅读时间 1 分钟 · 大约8小时之前 开始浏览    

低代码是优维科技长期深耕的技术板块,在漫长的创业周期中,我们通过不断实践积累和迭代优化,沉淀出EasyMABuilder前端低代码平台,迄今已成功赋能大量优质用户,为多个行业带来前所未有的轻盈体验。EasyMABuilder成功的背后,是优维人数年的技术探索和EasyOps产品哲学的落地,蕴含了主创团队对低代码生态的深度思考和实践创新。我们特别推出低代码专题撰稿计划,以专栏系列文章的形式解构低代码在DevOps领域的技术表现。

上一篇文章(点我查看)我们讲述了在 EasyMABuilder 中如何通过表达式和微应用函数来进行数据处理,让低代码平台也获得了与专业代码媲美的编写代码的能力和体验,不过这些代码仅限于数据加工,它无法参与 UI 界面相关的工作,虽然 EasyMABuilder 提供了数百个开箱即用的构件,并提供了在微应用层面封装模板的能力,但对于 UI 界面,总有更个性化的场景和需求,对此,我们提供了用户编写新构件的能力,并提供配套的脚手架工具来方便用户更快捷的编写新构件。

01准备
开始前,我们需要准备本地开发环境

  1. NodeJS (>=14);
  2. Yarn (1.x),安装方式:执行 npm install -g yarn;
  3. Lerna,安装方式:执行 npm install -g lerna。

v2-9f45f88cee6ea3fdd144de161972437f_720w.jpg

02创建一个新的构件项目
开发者可以按需创建自己的构件项目,每个项目中可以包含多个构件包,每个构件包又可以定义多个构件。

使用优维官方提供的 CLI 工具即可一键生成新的构件项目:

v2-69bf7e7cf6f05948a143de5ff0736250_720w.jpg

v2-7d49d90dc2865f49baac4f5df7edeb5d_720w.jpg

这个新生成的项目已经初始化提供了构建、测试、打包、代码静态检查等现代化的前端工程化配置,如果我们将项目托管在 GitHub 上,还可以开箱即用地使用包括持续集成和依赖更新等在内的自动化工作流。

03创建一个新的构件包

初始化的项目还没有任何构件包,我们先使用项目中内置的脚手架工具创建一个:

  1. 运行 yarn yo;
  2. 选择 a new package of bricks;
  3. 输入构件包的名称,例如 my-bricks;
  4. 然后,我们可以选择同时创建一个构件,本文为了演示我们先选择跳过。
v2-64d6b5523cb1a4ac78dc55f9d1385aa2_720w.jpg

新的构件包的代码就已经初始化完成,其中的各种工程配置文件可以按需自由调整。

04创建一个新构件
构件包有了,我们再创建一个新的构件:

  1. 运行 yarn yo;
  2. 选择 a new brick;
  3. 输入构件的名称,例如 hello-world。
v2-985594a194ba8f97d5670a8b6cf57be2_b.jpg

05编写构件
初始化的构件主要包含以下文件:

v2-4f89913ab376925632be5823a038f938_720w.png

这个构件已经可以使用,我们先启动开发版本的构建:

v2-0eac7d6e00c374cfea9623847dfc16dd_720w.jpg

然后打开一个新的终端来启动开发服务:

v2-b289f063f699ad53ff78e6a07d8c1f5a_720w.jpg

接着就可以在我们的微应用中使用该构件了:

v2-d09e4cff33fde51846ffed116db31b77_720w.jpg

不过这个构件还只是一个空壳,我们接下来完善它。假设我们的需求是做一个按钮构件,简单做下修改:

v2-a971e2899e69f7b0b72884aa3b92b3bf_720w.jpg

保存后,本地页面将立即更新:

v2-f8d0b93013b9c0808e232c4f576547d9_720w.jpg

06属性
我们再让构件支持一个“按钮类型”的属性:

v2-6c6ea5e4ae653ad379dc1e9106edf7a1_720w.jpg
v2-8e9c60c801bbdd4950f66d5d0568c906_720w.jpg

最后修改我们的应用编排,设置一个按钮类型:

v2-094d553dc26cb3a05c0b614f9d6881da_720w.jpg

v2-3c5b2d96e488337cec45a3cf90ba8be5_720w.jpg

07事件
我们再为它添加一个点击事件:

v2-09a756838954eb06137b6fd6900ac076_720w.jpg
v2-77f28a4e7eae6dd4e94a40fdaf8bc7c1_720w.jpg

最后修改我们的应用编排,绑定一个按钮事件:

v2-90fbaef97a9f908e31814380eb4333a4_720w.jpg

点击该按钮,将弹出提示信息:

v2-4f60308e506a2916c5ce2717f51c06d3_720w.jpg

v2-094d95fa95f21b5a78cefa6bf4a80fd9_720w.jpg

至此,我们完成了基本的构件能力的开发。


有疑问加站长微信联系(非本文作者)

280

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK