我有一个非常小的应用程序,有一个捐赠表格.表单引导用户完成填写信息的步骤.我有一个主要组件,它是表单包装器和主Vue实例,它包含所有表单数据(模型).所有子组件都是捐赠过程中的步骤.每个子组件都有要填写的输入字段,这些字段将更新父模型,以便在提交表单时我拥有父模型中的所有表单数据.以下是组件的组合方式:
<donation-form></donation-form> // Main/Parent component
Run Code Online (Sandbox Code Playgroud)
donation-form组件内部 :
<template>
<form action="/" id="give">
<div id="inner-form-wrapper" :class="sliderClass">
<step1></step1>
<step2></step2>
<step3></step3>
</div>
<nav-buttons></nav-buttons>
</form>
</template>
Run Code Online (Sandbox Code Playgroud)
现在,我正在设置每个子组件中输入的数据,然后我有一个watch方法正在监视要更新的字段,然后我$root通过执行此操作将它们推送到...
watch: {
amount() {
this.$root.donation.amount = this.amount;
}
}
Run Code Online (Sandbox Code Playgroud)
问题是我的一个步骤我有很多字段,而且我似乎在编写一些重复的代码.此外,我确信这不是最好的方法.
我尝试将数据作为一个传递prop给我的子组件,但似乎我无法更改子组件中的道具.
除了将监视添加到子组件中的每个值之外,更新根实例甚至父实例的更好方法是什么?
更多示例
这是我的step2.vue文件 - step2 vue文件
这是我的donation-form.vue文件 - 捐赠形式的vue文件
vue.js ×1