尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

form-create-designer事件配置实战:change、blur与函数事件如何串联联动逻辑

form-create-designer事件配置实战:change、blur与函数事件如何串联联动逻辑 form-create-designer事件配置实战change、blur与函数事件如何串联联动逻辑【免费下载链接】FcDesigner好用的Vue低代码可视化 AI 表单设计器可以通过拖拽的方式快速创建表单提高开发者对表单的开发效率。支持PC端和移动端目前在政务系统、OA系统、ERP系统、电商系统、流程管理等系统中已稳定应用。项目地址: https://gitcode.com/xaboy/form-create-designerform-create-designer 是一款 Vue 低代码可视化表单设计器支持拖拽搭建表单也内置了强大的事件配置能力。本文面向新手带你 5 分钟搞懂 change、blur 与函数事件学会用几行代码把联动逻辑串起来。一、事件配置面板在哪里选中画布中的任意组件如输入框在右侧属性面板点击事件配置按钮即可打开事件配置面板。按钮右上角的橙色角标会显示当前组件已配置的事件数量一眼就能看出哪些组件绑定了逻辑。面板分为两部分左侧事件列表从下拉菜单添加事件每个事件下方有灰色说明文字右侧代码编辑器为该事件编写函数体基于 CodeMirror带参数提示。组件支持哪些事件是由组件规则文件预先声明的。以输入框为例它声明了blur、focus、change、pressEnter四个事件// packages/ant-design-vue/src/config/rule/input.js event: [blur, focus, change, pressEnter],相关实现见 input.js、EventConfig.vue。 除组件自带事件外你还可以添加自定义事件如myEvent在事件列表底部输入事件名回车即可。二、change 与 blur 的触发时机选对才有用很多新手会把两个事件用混记住这个口诀选值用 change校验用 blur。事件触发时机典型用途change值确认变化时选择器选中、输入确认驱动联动显隐字段、重算金额blur输入框失焦时格式校验、异步查重、提示错误例如做一张订单表单用户把订单类型从 A 切到 B 时立即用change显示/隐藏备注字段用户填完手机号离开输入框时用blur做格式校验并弹提示。两个事件各司其职联动逻辑自然清晰不会出现边打字边校验、频繁弹提示的糟糕体验。三、函数事件的核心$inject 参数事件代码编辑器的函数体中会自动带上一个$inject参数见 getInjectArg它是通往整个表单的遥控器常用能力包括$inject.getFieldValue(field)读取某字段值$inject.setField(field, rule)设置字段属性显隐、标题、禁用等$inject.api调用 notify 提示、打开弹窗等接口。编辑器里鼠标悬停在参数名上会弹出该参数的说明和参数表实现见 FnEditor.vue新手不用背 API悬停即文档。四、实战用 change blur 串联一条联动逻辑下面用一个订单类型联动 手机号校验的最小案例看看两个事件如何配合代码可直接粘贴进设计器的事件编辑器// change 事件订单类型变化时联动显隐备注字段 function change($inject) { const type $inject.getFieldValue(orderType); $inject.setField(remark, { show: type special }); }// blur 事件手机号失焦时校验格式 function blur($inject) { const phone $inject.getFieldValue(phone); if (phone !/^1\d{10}$/.test(phone)) { $inject.api.notify({ type: warning, color: orange, text: 手机号格式不正确 }); } }执行链路就是组件触发 change → 读取本字段值 → 修改另一字段的显隐 → 用户离开手机号输入框时 blur 校验。整个过程没有写一行 Vue 业务代码联动逻辑全部沉淀在表单 JSON 里随表单一起保存、发布、复用。五、进阶hook 事件与全局函数除了组件事件面板下拉菜单里还有一组hook 事件hook_load、hook_mounted、hook_watch、hook_value、hook_hidden等清单见 EventConfig.vue。它们分别对应组件加载、挂载、值变化、显隐变化等生命周期时机保存时会写入组件规则的_hook属性序列化逻辑见 getValue 方法。例如想在金额字段一变就重算总价给它挂hook_value即可不必等待用户提交。另外事件代码支持以$GLOBAL:函数名的方式引用宿主项目注册的全局函数方便把复杂业务抽到工程代码里表单里只留钩子。表单级函数事件fnList的配置面板见 FnConfig.vue。六、新手避坑清单 改完函数要点保存编辑器头部的保存按钮用于暂存当前函数弹窗底部确定才会把全部事件写入组件规则同一事件可添加多次同一事件名添加多个函数时它们会按顺序依次执行存储为数组见 EventConfig.vue可借此拆分校验 联动 埋点别拿 change 做失焦校验打字中途也会频繁触发校验类逻辑请交给blur跨 UI 框架一致ant-design-vue、element-ui、vant 三个包的事件配置体验相同各包目录结构一致如 element-ui 的 EventConfig.vue学会一套即可迁移。小结form-create-designer 的事件配置本质上就是把事件声明、代码编辑器、$inject 表单能力三件事拼在一起组件规则声明可配事件 → 编辑器里写函数 → 用$inject读写表单。change 管联动、blur 管校验、hook 管生命周期三者组合起来绝大多数表单联动需求都能在低代码画布上直接完成无需回到业务工程写代码。【免费下载链接】FcDesigner好用的Vue低代码可视化 AI 表单设计器可以通过拖拽的方式快速创建表单提高开发者对表单的开发效率。支持PC端和移动端目前在政务系统、OA系统、ERP系统、电商系统、流程管理等系统中已稳定应用。项目地址: https://gitcode.com/xaboy/form-create-designer创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表