当前位置: 首页 > news >正文

OneCode 核心组件——APICaller介绍

在上一章中,我们介绍了OneCode 访问的基础概念Page,Page页面是用户访问以及组织业务逻辑的基本单元,但其更多的还是承担的容器的作用具体的业务功能还是要由一个个Component组件来完成。组件最细粒度复用单元。

添加图片注释,不超过 140 字(可选)

一,基础组件

  • 基础组件:通用基础,支撑基础交互,比如Ajax服务调用,CSS样式配置渲染、消息等。

添加图片注释,不超过 140 字(可选)

二,APICaller(后端服务调用)

APICaller 是OneCode核心的交互组件,当页面向发起后端API调用的时候,就需要配置这个组件,一个页面中可以同时配置多个APICaller, APICaller 本身也能形成链条完成更复杂的前后端交互逻辑。

(1)通过添加一个APIClaller

 

添加图片注释,不超过 140 字(可选)

(2) 同步生成的APICaller JS示例代码

 
 append(xui.create("xui.APICaller").setHost(host,"getGalleryData").setRequestDataSource([{"type":"form","name":"IndexMain","path":""}]).setResponseDataTarget([{"type":"component","name":"topBar","path":"data"}]).setResponseCallback([ ]).setQueryURL("/admin/index/GalleryData").setAutoRun(true).setQueryMethod("POST"));

(3) 后端DSM配置

前后端一体的自动化参数配置

在DSM配置中,每一个APICaller 会对应自动创建一个路由控制器,在路由控制器中可以配置一些需要前后端统一的配置参数,从而实现前后端设置的一体话,比如:需要访问时增加一个隐藏的属性字段,只需要在DSM中增加,然后重新编译并编译视图后,前端会会在pagCtx 页面环境中创建一个隐藏域,同时后端方法参数也会自动做相应的修改,并完成前后端的映射。

 

常用事件触发

DSM配置面板上还针对API组件增加了一些常用事件相应动作的配置管理,比如我们常用的在数据装载的时候给用户一个友好的提示,同时锁定操作窗口。就可以在APICaller 开始调用的饿时候,添加一个遮罩动作。同时添加一个消息弹出。等APICaller 调用结束,在解除遮罩,移除消息框。

 

事件回调应用

事件回调也是APICaller 一个事件的子集,但他又不同于普通的事件,它允许在APICaller 调用完成后将APICaller 调用的结果作为新的事件函数传递给其他组件对象,比如:当APICaller 调用成功时,他会将数据换递给当前绑定APICaller 调用的其他视图组件,完成页面的重载及刷新。

 

视图事件绑定

APICaller 本身可以作为数据流的基础组件节点,在其他组件发出相关事件时触发自身的运行机制。比如:当前绑定的视图是一个表单视图,表单视图在基本事件上会有数据装载、保存(点击保存按钮)等组件事件,APICaller 可以作为这些事件链的参与者相应相关事件并执行反馈结果。

 

PerCode 生成转换

在完成页面应用的基础属性设计以及DSM配置后,可以选择编译模型,OneCode引擎会根据配置自动创建相应的PerCode 代码,当前版本中主要支持的基于Java SpringMVC 的控制及模型代码。

 

 

@Aggregation(rootClass=GalleryMenuAPI.class,moduleName="index3.topbar")
@RequestMapping(value="test/view/index3/topbar")
@Controller
public interface GalleryMenuAPI  {@GalleryViewAnnotation(dataUrl="test/view/index3/topbar/GalleryMenu",cache=false)@APIEventAnnotation(bindTabsEvent=CustomTabsEvent.tabEditor)@RequestMapping(value="GalleryMenu")@ModuleAnnotation(name="GalleryMenu",moduleViewType=ModuleViewType.GalleryConfig)@UIAnnotation(top="0.68em",width="16.0em",right="0.0em",height="5.0em")@ResponseBodypublic  ListResultModel<List<test.view.index3.topbar.GalleryMenu>>getGalleryMenu ();
}

相关文章:

  • VUE3 路由的跳转方法
  • 计算机——硬盘驱动器
  • 【编译原理】语句的翻译
  • Redis如何解决缓存击穿,缓存雪崩,缓存穿透
  • 实验问题记录:PyTorch Tensor 也会出现 a = b 赋值后,修改 a 会影响 b 的情况
  • Android 构建配置中的变量(通常在设备制造商或定制 ROM 的 AndroidProducts.mk 或产品配置文件中定义)
  • 阿里云申请ssl证书,同时需要绑定域名,下载nginx压缩包,nginx添加证书路径即可
  • 【云创智城】YunCharge充电桩系统源码实现云快充协议深度解析与Java技术实践:打造高效充电桩运营系统
  • UE5错误 Linux离线状态下错误 请求失败libcurl错误:6无法解析主机名
  • Vue2 day01
  • 【算法 day08】LeetCode 151.翻转字符串里的单词 |卡码网:55.右旋转字符串
  • 回答 如何通过inode client的SSLVPN登录之后,访问需要通过域名才能打开的服务
  • 【Linux】内核基于GCC裁剪流程-进一步优化版本
  • 云蝠智能大模型呼叫系统:为企业提供专业的智能客户联络
  • mysql server层做了什么
  • Python粒子群优化算法结合热力图TIFF文件案例
  • 讯方“教学有方”平台获华为昇腾应用开发技术认证!
  • 【Dify学习笔记:】本地部署RagFlow适配Dify
  • 猿人学js逆向比赛第一届第九题
  • 高并发网络通信Netty之空轮询问题
  • 石狮网站建设费用/乔拓云网站建设
  • 苏州pc网站开发/网站运营及推广方案
  • 17网站一起做网店/网站优化排名金苹果系统
  • 网站建设公司人员配备/seo的中文名是什么
  • 深圳龙华做网站的公司/seo页面优化技术
  • 南阳企业网站排名优化/企业网站建设原则是