共同点
画布上节点多了会乱。把「清洗」这七八个节点收进一个方框,画布立刻清爽,双击方框能进去看里面。这一点两者完全一样。
区别在于收进去之后,这个方框是只是折叠,还是成了一个真正的自定义节点。
该选哪个
这一组节点,以后要在别的流程里复用吗?
不复用
用 Metanode
只是想让画布清爽一点。轻量、随手可建,进出都不隔离,改起来没负担。
要复用
用 Component
它有独立作用域,可以对外暴露参数,等于你自己造了一个节点,别的流程直接拿来用。
三处实质差别
| Metanode | Component | |
|---|---|---|
| 变量作用域 | 没有隔离。里面的流变量会直接流到外面,外面的也进得来 | 独立作用域。里面产生的变量默认出不去,要显式暴露 |
| 对外参数 | 没有。要改里面某个配置,只能进去改 | 可以把内部配置项暴露成对外参数,在外面双击就能配 |
| 复用 | 复制粘贴一份,两份从此各改各的 | 可以作为模板共享,多处引用同一个来源 |
第一条是最容易踩的。Metanode 不隔离变量,所以里面用的变量名如果和外面重了,会互相覆盖,而且不报错。流程复杂之后这种问题极难查。Component 的隔离正是为了避免这个。
实务建议
- 随手整理画布用 Metanode。把一段一次性的清洗折起来,纯粹为了好看,不必上 Component。
- 团队里反复出现的处理套路用 Component。比如「统一部门名称的四步清洗」,做成 Component 暴露一个「部门列」参数,谁都能拿去用。这是把经验沉淀成可复用件的正经做法。
- 拿不准就先用 Metanode。它可以转成 Component,反向也行。先折起来,等真的要复用了再升级 – 别一上来就为可能不会发生的复用做设计。
- 不要嵌套太深。方框里套方框,套三层之后没人愿意点进去看。折叠是为了让人看懂,不是为了藏起来。
对交接的影响
用 Component 封装的流程,接手的人不进去也能改参数 – 这对交接是好事。但如果里面逻辑复杂又没写说明,反而变成一个黑盒。
折中做法:Component 里第一个位置放一个注释节点,写清楚它做什么、要什么输入、暴露了哪些参数。三行字,省接手人半小时。

