Vue 3 的 reactive 是管理多步骤向导数据收集的核心工具,通过结构化配置驱动动态赋值:用 reactive 创建统一表单状态对象,字段名语义化且与步骤配置 key 严格一致;单事件处理器结合 toRefs 确保响应式穿透。

Vue 3 的 reactive 是管理多步骤向导数据收集的核心工具,关键在于用结构化配置驱动动态赋值,避免为每一步写重复逻辑。
用 reactive 管理统一表单状态
把所有用户输入字段提前定义在一个响应式对象里,字段名要语义化、可映射:
- 用
reactive({ userGender: '', userActivityLevel: '', ... })创建顶层状态容器 - 每个字段初始值为空字符串或默认值,确保模板渲染不报错
- 不推荐用多个
ref拆散管理,否则难以批量校验或提交
步骤配置与字段名动态绑定
把每一步的标题、选项、对应数据键名写成数组,让 UI 渲染和数据写入解耦:
构建 Shopify 嵌入式应用(Embedded App)的开发技能:基于 @shopify/shopify-app-react-router + React Router v7 + Admin API 2026-04。覆盖 shopifyApp 配置、authenticate.admin 的 GraphQL/REST 调用、Webhook 校验、Session 存储、订阅计费、App Bridge 导航、部署,并新增:适用场景判断、安全最佳实践、错误处理与容错、最佳实践、常见问题 FAQ、高级场景。G
- 例如:
levels = [{ heading: 'Choose gender', text: ['Male','Female'], key: 'userGender' }] -
key字段不是随便起的,必须和formData中的属性名完全一致 - 这样点击选项时,就能通过
formData[step.key] = selectedValue精准赋值
单事件处理器完成“跳步 + 存值”
子组件只触发一个 chosen 事件,携带 { stepIndex, value, key } 三元信息:
立即学习“前端免费学习笔记(深入)”;
- 父组件监听该事件,同步更新
activeLevel和formData[key] - 不需要为性别、活动水平等各写一个事件处理器,扩展新步骤只需往
levels加一项 - 若当前已是最后一步,可在此处触发表单提交或跳转
注意响应式穿透问题
如果后续要把 formData 解构使用(比如传给子组件 props),记得用 toRefs:
- 直接
const { userGender } = formData会丢失响应性 - 应写成
const { userGender } = toRefs(formData),再在模板中用{{ userGender.value }} - 或者更简洁:在模板中直接访问
{{ formData.userGender }},无需解构

















