alibaba / lowcode-engine

An enterprise-class low-code technology stack with scale-out design / 一套面向扩展设计的企业级低代码技术体系
https://lowcode-engine.cn
MIT License
14.66k stars 2.55k forks source link

物料属性描述中的autorun API是废弃了吗 #1501

Closed thundernet8 closed 1 year ago

thundernet8 commented 1 year ago

Describe the bug (required) / 详细描述 bug(必填)

物料属性描述协议中提供了autorun的API,目前看lowcode-materials里面都没有任何使用,且在lowcode-engine中并没有看到对物料中extraProps.autorun的引用和实现,倒是功能有重叠的setValue API有实现和在物料中大量使用,请问autorun API是否不推荐了?

image

A clear and concise description of what the bug is. / 请提供清晰且精确的 bug 描述


To Reproduce (required) / 如何复现 bug?(必填,非常重要)

Steps to reproduce the behavior: / 详细复现步骤:


English version example:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

中文版示例:

  1. 打开 demo
  2. 点击标题;
  3. 在右侧修改标题内容为「修改后的标题」;
  4. 渲染画布标题组件没有更新显示为「修改后的标题」;

Expected behavior (required) / 预期行为(必填,非常重要)

A clear and concise description of what did you expect to happen. / 请清晰和精确的描述你预期的行为


Screenshots (optional) / bug 截图(可选)

Sceenshots for further information. (If applicable.) / 一些有用的截图将会帮助我们更好的明确以及定位问题


Environments (please complete the following information) (required): / 请提供如下信息(必填)

(this information can be collected via the manual plugin / 版本信息可通过低代码用户手册插件收集)

Additional context (optional) / 更多额外信息(可选)

Any other context of the problem here. / 可以追加更多的额外信息,帮助定位问题

JackLian commented 1 year ago

有实现,可以到引擎源码里搜搜,官方物料里没有使用,主要是兼容历史版本的引擎api

thundernet8 commented 1 year ago

在依赖变更描述场景,autorun看起来能力更强,能观测复合条件(关系多个属性值)变更,而setValue是不行的,那么为什么废弃了autorun了呢

JackLian commented 1 year ago

谈不上放弃,如有添加的必要后续会加上,协议中的字段还是本着尽可能精简够用的原则来加的,避免无序膨胀

bcguan2008 commented 1 year ago

谈不上放弃,如有添加的必要后续会加上,协议中的字段还是本着尽可能精简够用的原则来加的,避免无序膨胀

这个之前用的时候也有困扰,貌似 autorun 能力比 setValue 更强,如果低代码引擎是协议精简原则(避免无序膨胀),貌似应该是采用 autorun,淡化 setValue 才对。

LeoYuan commented 1 year ago

setValue 和 autorun 职责不同,不好比较能力强弱~

setValue 用于当自身 prop#value 发生变化通知/修改其他 prop,autorun 用于感知其他 prop 变化,自身做出响应,一个主动一个被动,不过 autorun 应该真的没实现😄(ps:物料级别的 advanced#autoruns 有实现)~

getValue 能承担一定被动感知其他 prop 属性变化的能力