资讯动态

如何为Total.js Flow编写自定义Web组件:从--components--目录入手的开发者指南

发布时间:2026/8/22 13:09:05 来源:尧图企业网站定制
如何为Total.js Flow编写自定义Web组件从--components--目录入手的开发者指南【免费下载链接】flowVisual Programming Interface项目地址: https://gitcode.com/gh_mirrors/flow29/flowTotal.js Flow 是一款基于 Total.js 的可视化编程与自动化平台Visual Programming Interface支持以拖拽方式编排数据流与监控任务。本文带你从--components--目录入手快速学会为 Total.js Flow 编写自定义 Web 组件让你的可视化流程拥有独有能力。什么是 Total.js Flow 的 Web 组件在 Total.js Flow 的设计器画布上每一个可拖拽的节点就是一个Web 组件它可以检查 URL 是否在线、监控日志关键字、连接 PostgreSQL 数据库或者打印控制台信息。组件的本质是一个 HTML 文件内部同时包含后端逻辑Node.js 环境执行配置表单在 UI 中可编辑可视化区块画布上的展示样式也就是说一个文件 一个完整的流程节点这对新手非常友好。认识 --components-- 目录内置组件大公开 打开项目根目录下的--components--/文件夹你会看到 Total.js Flow 自带的 6 个官方组件组件文件功能--components--/checkurl.html检查 URL 是否在线--components--/checkfreespace.html检查服务器剩余磁盘空间--components--/checklog.html监控日志文件中的关键字--components--/checkpg.html检查 PostgreSQL 数据库连接--components--/console.html把 console 输出转发到 Web 控制台--components--/print.html打印流程中的数据这些组件都属于 FlowStream 引擎的扩展体系建议你先通读checkurl.html——它是所有组件中最简洁、最适合作为模板的一个。解剖一个Web组件5个区块一次看懂 以 URL 检查组件--components--/checkurl.html为例每个组件文件都由 5 个标签区块组成1️⃣script total— 核心逻辑区这是组件的大脑定义了组件的元信息和行为exports.id组件唯一标识画布上引用它的名称exports.name/exports.icon/exports.group显示名称、图标和分组exports.config默认配置项会自动变成 UI 设置表单的初始值exports.inputs/exports.outputs定义节点的数据输入口和输出口exports.npm声明组件依赖的 npm 包如checkpg组件声明了pgexports.make组件实例化入口负责注册消息处理函数其中最重要的就是instance.message函数——每当有数据流入该节点它就会触发一次。你可以在里面调用$.send(输出口, 数据)把结果传往下游节点或调用$.destroy()销毁这条消息。2️⃣readme— 说明文档区组件在编辑器组件面板中显示的介绍文字帮使用者理解节点用途。3️⃣settings— 配置表单区这里使用ui-component nameinput path?.字段名这样的标签把exports.config中的字段变成可视化输入框。例如checkurl组件把?.url和?.error两个字段暴露出来用户双击节点就能修改无需改任何代码。4️⃣style— 样式区通过.CLASS占位符注入组件专属 CSS控制画布节点的外观。5️⃣body— 可视化展示区节点在画布上的脸面。$NAME、$ICON、$STATUS等占位符会自动替换配合ui-bind组件还能用模板实时渲染运行状态比如显示绿色的 ONLINE 徽章。编写你的第一个自定义Web组件3步上手 第 1 步复制模板复制--components--/checkurl.html为mycomponent.html放到--components--/目录下。第 2 步修改元信息与逻辑把exports.id改成你的组件名更新exports.name、exports.icon、exports.group然后在exports.make中的instance.message函数里写入你的业务逻辑。需要用到 npm 包时在exports.npm中声明即可。第 3 步设计配置项与表单在exports.config中定义默认值再在settings区块为每个字段添加ui-component输入框。这样用户就能在 UI 里直接调整参数组件真正做到零代码配置。 小技巧想要实时显示运行状态可以在消息处理中调用instance.status({...})并在body里用ui-bind绑定$STATUS做模板渲染——checkfreespace组件的磁盘空间展示就是这么实现的。常用 API 速查表 API作用instance.message function($)注册消息处理函数数据流入时触发$.send(输出口, 数据)从指定输出口向下游发送数据$.destroy()销毁当前消息流程到此结束instance.status(对象)更新节点运行状态并刷新画布显示instance.configure()配置变更时重新加载参数instance.close()组件销毁前的清理钩子此外组件内部可以直接使用 Node.js 能力require(pg)加载数据库驱动见checkpg.html、Total.Fs操作文件流见checklog.html、SHELL执行系统命令见checkfreespace.html等。如何让 Flow 识别你的组件加载机制说明 ⚙️组件的加载由配置驱动在 config 文件中可设置components项指向组件数据库的 db.json 地址前端设计器通过 controllers/default.js 中读取CONF.components获取组件列表界面层的 UI 组件则由 definitions/init.js 中的COMPONENTATOR()统一注册加载。因此把你的组件文件放入--components--/目录并按规范组织好 5 个区块后即可通过组件数据库地址让 Flow 发现并使用它。新手避坑最佳实践清单 ✅id 必须全局唯一exports.id是节点的身份标识重复会导致画布混乱配置项给默认值exports.config中提供合理默认值用户体验更好错误走输出口异常时通过$.send(error, 消息)输出而不是直接抛异常中断流程及时销毁消息处理完成后调用$.destroy()避免消息在节点间空转依赖走 exports.npm第三方包统一在exports.npm声明保持环境一致参考源码学习console.html展示了如何与 Web 端通信print.html展示了数据序列化处理都是优质范本。 到这里你已经掌握了 Total.js Flow Web 组件的完整开发思路一个 HTML 文件、五个区块、三步上手。动手改造--components--/checkurl.html写出属于你的第一个自定义组件吧【免费下载链接】flowVisual Programming Interface项目地址: https://gitcode.com/gh_mirrors/flow29/flow创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价