优维低代码实践:Context / State

这篇具有很好参考价值的文章主要介绍了优维低代码实践:Context / State。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

优维低代码实践:Context / State,低代码,android,低代码开发平台,低代码技术

优维低代码实践:Context / State,低代码,android,低代码开发平台,低代码技术

优维低代码实践:Context / State,低代码,android,低代码开发平台,低代码技术

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

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

《Context / State》

在开发中有一项重要的工作是维护和管理我们的数据,比如页面需要获取远端的数据进行渲染或者声明变量,然后动态更新数据等,这些都需要我们能提供一套声明和消费数据的机制。对此,我们平台提供了 Context 和 State 两种数据的管理方式。

Context 为全局的状态数据,在一个路由的页面周期中都有效,作用域为整个路由范围内,相当于我们的全局变量;而 State 是局部的状态数据,相当于我们的局部变量,其只应用于模板的内部。同时引用的这些状态数据还能支持实时更新的能力,这对于我们编排来说可谓是如虎添翼。

Context

context 通常声明在某一个路由下,表示在该路由下可使用的变量,我们来看一下 context 具体使用方式。

1.1 context 定义优维低代码实践:Context / State,低代码,android,低代码开发平台,低代码技术

优维低代码实践:Context / State,低代码,android,低代码开发平台,低代码技术

优维低代码实践:Context / State,低代码,android,低代码开发平台,低代码技术

优维低代码实践:Context / State,低代码,android,低代码开发平台,低代码技术 上述图中,我们发现 context 还有一些配置项,分别是 if,onchange,track,和 provider 相关的 transform 和 onReject,我们接下来详细说明下该配置项的用途。

1.2 配置详解

Context 级别的配置,我们以 yaml 的配置形式来介绍。

1.2.1 basic settings

if 条件配置

可以配置 if 来按条件决定是否执行对应的 Context

优维低代码实践:Context / State,低代码,android,低代码开发平台,低代码技术优维低代码实践:Context / State,低代码,android,低代码开发平台,低代码技术

 onChange

有时候我们希望声明一个 Context 变量,但不对它立即赋值,而是通过特定事件触发赋值,并且希望能监听其变更事件。

可以在声明 Context 时定义 onChange, 然后在特定条件发生时再对其赋值,当 Context 发生变化时,onChange 注册的事件处理器将被调用。图中的EVENT.detail为该 Context 的值,优维低代码实践:Context / State,低代码,android,低代码开发平台,低代码技术

优维低代码实践:Context / State,低代码,android,低代码开发平台,低代码技术

 track

依赖追踪,也就是说当前 contextA 下有依赖的其他的contextB,当 ContextB 变化后(通过
context.replace/context.refresh等), contextA 的值会重新计算。

优维低代码实践:Context / State,低代码,android,低代码开发平台,低代码技术优维低代码实践:Context / State,低代码,android,低代码开发平台,低代码技术

 优维低代码实践:Context / State,低代码,android,低代码开发平台,低代码技术

 

优维低代码实践:Context / State,低代码,android,低代码开发平台,低代码技术

1.2.2 Provider settings

transform/onReject

当 context 为 provider/contract 类型时,针对该请求的返回可配置 transform, onReject 和 lazy 项,

transform 顾名思义是对返回的接口做数据处理用,而 OnReject 则对请求报错时额外做的特殊处理,正常情况我们一般不会配置 OnReject,因为系统会统一捕获并显示错误信息。优维低代码实践:Context / State,低代码,android,低代码开发平台,低代码技术

优维低代码实践:Context / State,低代码,android,低代码开发平台,低代码技术

 lazy

对于 provider 中的 lazy 项,我们称之为懒加载。默认情况下,我们的请求都会在页面加载前发起并会阻塞渲染,但有些数据并不着急需要,可能只需在特定条件下发起请求即可(例如打开抽屉和弹窗)。这时,可以标记为 lazy: true 将它设置为懒加载,该数据将不会默认发送请求,需要在特定条件下主动触发 context.load /context.refresh 来发起请求。优维低代码实践:Context / State,低代码,android,低代码开发平台,低代码技术

优维低代码实践:Context / State,低代码,android,低代码开发平台,低代码技术

 优维低代码实践:Context / State,低代码,android,低代码开发平台,低代码技术优维低代码实践:Context / State,低代码,android,低代码开发平台,低代码技术

 1.2.3 PATH

PATH 的配置项是给 context 分组用的,当一个路由管理的 context 很多时,为了方便管理和查找,我们可以给每一个 context 进行分类,这样同一类下的 context 会放在同一目录下展示。优维低代码实践:Context / State,低代码,android,低代码开发平台,低代码技术

优维低代码实践:Context / State,低代码,android,低代码开发平台,低代码技术

 1.3 context 使用

当我们定义好 context 后,就可以在编排中直接使用了,在使用时需要加上 CTX 的前缀,同时我们使用 context 的地方也支持了 track context 的能力,只要在表达式前面添加一句 "track context" 构件的属性就能跟随 Context 变化而自动重新计算并赋值。优维低代码实践:Context / State,低代码,android,低代码开发平台,低代码技术

优维低代码实践:Context / State,低代码,android,低代码开发平台,低代码技术

 State

State 的能力和 Context 几乎完全一致,不同的是,Context 的作用域是整个页面、是全局的,我们的自定义模板,同一个模板在页面中可能有多个实例,如果直接使用 Context,则多个实例间的数据会互相影响。另外,使用全局的 Context 也会破坏模板的封装,削弱应用的可维护性,并带来潜在的问题。

因此 State 正是为了解决这个问题,它用于管理自定义模板内的数据,其作用域是模板的实例,多个模板实例之间的数据互相隔离。同时,在能力上完全与 Context 对等。优维低代码实践:Context / State,低代码,android,低代码开发平台,低代码技术

优维低代码实践:Context / State,低代码,android,低代码开发平台,低代码技术

 State 的定义也和 Context 一致,它只能在模板的页面中使用,与 Context 不同的是 State 有属于自己的状态更新的 action,它与 context 一一对应。文章来源地址https://www.toymoban.com/news/detail-642548.html

到了这里,关于优维低代码实践:Context / State的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 优维低代码实践:统计视图

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

    2024年02月16日
    浏览(64)
  • 优维低代码实践:对接数据

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

    2024年02月14日
    浏览(44)
  • 优维低代码实践:权限设置

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

    2024年02月15日
    浏览(36)
  • 优维低代码实践:自定义模板

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

    2024年02月12日
    浏览(36)
  • 优维低代码实践:面包屑配置以及菜单配置

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

    2024年02月10日
    浏览(44)
  • Kotlin & Compose Multiplatform 跨平台(Android端、桌面端)开发实践之使用 SQLDelight 将数据储存至数据库

    取标题的时候我还在想,我应该写 Compose 跨平台呢还是写 Kotlin 跨平台。 毕竟对于我的整体项目而言,确实是 Compose 跨平台开发,但是对于我这篇文章要说的东西,那其实也涉及不到多少 Compose 相关的内容,更多的应该是 Kotlin Multiplatform 相关的内容。 二者取舍不下,干脆都

    2024年02月15日
    浏览(46)
  • 【AI大模型应用开发】【LangFuse: LangSmith平替,生产级AI应用维护平台】0. 快速上手 - 基本功能全面介绍与实践(附代码)

    大家好,我是同学小张,日常分享AI知识和实战案例 欢迎 点赞 + 关注 👏, 持续学习 , 持续干货输出 。 +v: jasper_8017 一起交流💬,一起进步💪。 微信公众号也可搜【同学小张】 🙏 本站文章一览: 前面我们介绍了LangChain无缝衔接的LangSmith平台,可以跟踪程序运行步骤,提

    2024年03月21日
    浏览(75)
  • 优维产品最佳实践第13期:如何避免拨测机自身网络问题?

    受限于拨测节点自身的环境,单一节点的拨测结果可能并不能反映出监控实例的真实运行状态 本期EasyOps产品使用最佳实践,我们将为您揭晓: 如何基于多点决策配置拨测监控,以避免拨测机自身网络问题而误告警? 如何对指标实现“降维”,从而汇聚指标? 「 背 景 」 拨

    2024年02月06日
    浏览(40)
  • 作业帮基于 DolphinScheduler 的数据开发平台实践

    摘要 随着任务数量、任务类型需求不断增长,对我们的数据开发平台提出了更高的要求。本文主要分享我们将调度引擎升级到 Apache DolphinScheduler 的实践经验,以及对数据开发平台的一些思考。 首先介绍下我们的大数据平台架构: 数据计算层承接了全公司的数据开发需求,负

    2024年02月03日
    浏览(35)
  • 基于袋鼠云实时开发平台开发 FlinkSQL 任务的实践探索

    随着业务的发展,实时场景在各个⾏业中变得越来越重要。⽆论是⾦融、电商还是物流,实时数据处理都成为了其中的关键环节。Flink 凭借其强⼤的流处理特性、窗⼝操作以及对各种数据源的⽀持,成为实时场景下的⾸选开发⼯具。 FlinkSQL 通过 SQL 语⾔⾯向数据开发提供了更

    2024年02月12日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包