为什么通过外链依赖了资源?
这是 JS 编译器monaco 的依赖,因为体积比较大,不太好整合成进 designable 中。[1]
官方文档什么时候会完善?
要到 2023 年年初。[1]
有没有自定义组件的成功经验?
可以看下这篇,开发 designable 内置组件缺少的步骤器(FormStep)经验分享。[1]
与阿里 lowcode-engine 的关系与区别是什么?
没啥关联。
lowcode-engine是打包型的产品,designable 就是设计器引擎,聚焦点不一样。[1]
- designable 不负责包装产品,所以它的定位更像一个 library,它后面的路线是尽可能的优化设计器的各种设计能力
- 至于上层产品如何封装,是由用户自己发挥的。
ps:不过 designable 的组件树ITreeNode,是遵循阿里巴巴集团的低代码协议的。[2]
react-settings-form 内部组件如何自定义扩展?
先看下代码
import React from 'react';
import { Form } from '@formily/core';
export interface ISettingFormProps {
className?: string;
style?: React.CSSProperties;
uploadAction?: string;
components?: Record<string, React.FC<any>>;
effects?: (form: Form) => void;
scope?: any;
}
我们可以通过传递 components 和 effects 完成自定义拓展。(类似 formily1.x 的写法)[1]
组件封装的最佳案例,可以参看源码。
如何增加一个远程数据源
- 直接在组件属性配置里的“响应器”里写 js 代码。(它有个好处,可以与页面其它元素各种联动)
- 扩展自定义组件,这个组件的属性配置中可以移除“响应器”,增加“api 传参配置”。与上传组件类似。[1]
对组件的显示、隐藏属性,只想在渲染时生效,在配置时的设计界面不生效(即不隐藏),怎么实现?
这个涉及到“画布态”和“运行态”的概念,“画布态”是基于Field 组件渲染的。
可以通过复写 Field 组件
实现,在ComponentTreeWidget
组件挂载 field 组件时做替换。
这样就组件的显示/隐藏就完全由自己控制了。[1]
响应器配置,当前的模式是被动依赖,后续会支持主动依赖模式吗?
不会考虑,建议做个自定义组件。[1]
如果接入类似于 button 这种组件的话,想与其他的组件进行联动例如触发 form 的提交,触发 modal 的显示,目前的推荐方法是?(目前似乎只支持被动依赖这个不知道有没有具体的实现方案?)
建议增加带 submit 按钮的 form 组件,在点击 submit 按钮时获取 form 组件的 props.values
拿到表单数据。[1]