首页 > 其他分享 >优维低代码实践:自定义模板

优维低代码实践:自定义模板

时间:2023-08-14 18:07:01浏览次数:34  
标签:自定义 form 插槽 代理 构件 优维低 我们 模板

优维低代码实践:自定义模板_数据

优维低代码实践:自定义模板_自定义_02

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

优维低代码实践连载第14期

《自定义模板》

一、概述

构件是我们的页面最基础的单元,不同构件的组合和搭配形成了页面的交互。当我们的不同页面想要复用相同的模块时。可复用性就是自定义模板诞生的背景,它可以将一套构件组合封装成一个新的可复用的单元,然后像普通构件那样使用。

二、模板的使用

2.1 代理的设置

模板的详情解析可查看「自定义模板详解」本篇着重讲解模板在我们我们低代码平台的使用, 我们的 visual-builder 平台有管理模板的专属页面,它跟我们编排的普通页面的界面是类似的,本质上都是组合不同构件。

模板也跟构件一样具有属性,方法,事件,插槽,不同的是它们只是代理其内部构件用的,模板只是起到封装的容器作用,我们具体看下模板代理的配置项,我们以小产品 「FIRST-APP-LESSON-4」中 「tpl-task-form」 为例子。

优维低代码实践:自定义模板_数据_03

上面是一个添加任务表单项封装为一个模板的例子,我们能看到该模板代理了事件(events)和方法(methods),同样如果要代理属性和插槽的话配置如下所示:

# 该示例为代理 form 中 values 属性和 form 中的 items 插槽


properties:
  values: # 代理后的新属性名称
    ref: form
    refProperty: values
slots:
  items:  # 代理后的新插槽名称
    ref: form
    refSlot: items # 被代理的插槽


# 配置好后,该模板的就跟普通构件的使用方式一样,当添加 tpl-task-form 的构件后,该模板的属性和方法等就是上面定义的新属性和新方法

2.2 State

state 为模板级别的数据变量,它跟 Context 上下文的数据一样,不同的是 context 类似我们的全局变量,作用域是整个路由,而 State 能控制在模板实例的作用域下,数据封装在模板内部、外部不可访问,同时一个模板的多个实例之间的数据互不影响。我们同样看下 「tpl-task-form」这个模板定义了哪些 state 数据:

优维低代码实践:自定义模板_自定义_04

我们再看这些变量对应的使用方式:

优维低代码实践:自定义模板_插槽_05

优维低代码实践:自定义模板_插槽_06

2.3 模板预览

我们开发模板也是支持实时预览的,面板的中间区域就是我们预览区,当我们需要调试时,我们可以根据模板的定义的 state 编辑不同的输入参数。

优维低代码实践:自定义模板_数据_07

上面说完了模板的整个定义流程,我们再看下模板最终的使用效果,同样拿 「tpl-task-form」这个模板示例:

优维低代码实践:自定义模板_数据_08

最终我们完成了模板的创建,定义和使用,掌握了模板这个技能,我们可以把很多复杂的场景简化为一个个小模块然后再组装,这对于降低开发复杂度是一个很好的助手。

标签:自定义,form,插槽,代理,构件,优维低,我们,模板
From: https://blog.51cto.com/u_15605878/7079277

相关文章

  • P3374 【模板】树状数组
    \(P3374\)【模板】树状数组1#include<bits/stdc++.h>usingnamespacestd;constintN=5*1e5+10;intn,m;inta[N];//树状数组模板inttr[N];intlowbit(intx){returnx&-x;}voidadd(intx,intc){for(inti=x;i<N;i+=lo......
  • 模板设计模式
    一.意图模板方法模式 (TemplateMethod)是一种行为设计模式,它在超类中定义了一个算法的框架,允许子类在不修改结构的情况下重写算法的特定步骤。模板方法模式是所有模式中最为常见的几个模式之一,是基于继承的代码复用的基本技术。,没有关联关系。因此,在模板方法模式的类结构......
  • SAP Fiori Elements 应用里标准模板 XML Fragment 加载的逻辑和 XMLPreprocessor 的作
    触发时间点是XMLPreprocessor的insertFragment方法:上图的调试器上下文里,我们看到了XMLPreprocessor.js的实现,它是SAPUI5框架中一个重要的文件,它主要负责处理XML视图的预处理工作。对于SAPUI5中的视图创建,可以使用JavaScript、JSON、XML等多种方式。其中,XML......
  • 不背单词自定义词书制作与导入
    0前言最近不得不开始准备GRE了,从张巍公众号白嫖了好多单词书,但是我从高中开始就不习惯使用纸质材料背单词了,都是使用不背单词这个app了。没错,我的高中是允许带手机的哈哈哈不背单词的自定义词书功能还不完善。所以我花了一上午研究怎么把PDF导入进去思路:通过将pdf文件转成一......
  • 单调队列模板
    好的,这是一个晴朗的夜晚。-苯荏水平不高甚至菜亖,博客仅仅写给自己避免自己忘记学了什么,也仅据我理解写出,不严谨,非常不严谨。单调队列。在原序列基础上,维护一个单调的序列。单调队列中的元素在原序列中的相对位置不变,且在单调队列中的元素是单调的。基本模板题:https://www.lu......
  • 自定义springboot-starter包
    https://www.cnblogs.com/yuansc/p/9088212.html 前言我们都知道可以使用SpringBoot快速的开发基于Spring框架的项目。由于围绕SpringBoot存在很多开箱即用的Starter依赖,使得我们在开发业务代码时能够非常方便的、不需要过多关注框架的配置,而只需要关注业务即可。例如我想......
  • java8 时间模板中 year 和 year-of-era 的不同
    Java8在表示时间的时候引入了一个u激发了我的好奇心,下面给大家讲解下两个的不同:year字段表示公历年份,其值可以是正数或负数,从-999,999,999到999,999,999。year-of-era字段表示日历纪元内的年份,其值范围从1到正无穷大。两者的区别在于:year字段直接表示公历年份,不受纪元......
  • tarjan模板
    ilvoidtarjan(intu){ dfn[u]=low[u]=++num,st[++top]=u,ins[u]=1; G(i,u) { intv=ver[i]; if(!dfn[v]) { tarjan(v); low[u]=min(low[u],low[v]); } elseif(ins[v])low[u]=min(low[u],dfn[v]); } if(dfn[u]==low[u]) { intt=0; cnt++; do......
  • ApiPost自定义环境变量 缓存token的操作步骤
    使用场景:测试的时候获取token,然后其他请求的时候自动带token。获取Token后,执行后执行脚本,apt.variables.set("token",response.json.access_token);请求回来的参数在json中,根据需要修改这时候token就存储到环境变量中了2.使用的时候如下:......
  • feign中传递自定义MultipartFile
    前言在使用SpringCloud的feign组件过程中,我们想传递一个文件到服务提供者.但是我们只有byte[],这是就需要手动创建MultipartFile实现接口MultipartFileimportjava.io.ByteArrayInputStream;importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOExc......