【发布时间】:2017-05-30 12:02:39
【问题描述】:
我有一个非常小的应用程序,它有一个捐赠表格。该表单将引导用户完成填写信息的步骤。我有一个主要组件,它是表单包装器和包含所有表单数据(模型)的主 Vue 实例。所有子组件都是捐赠过程中的步骤。每个子组件都有要填写的输入字段,这些字段将更新父模型,以便我在提交表单时拥有父模型中的所有表单数据。以下是组件的组合方式:
<donation-form></donation-form> // Main/Parent component
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>
现在,我正在从每个子组件中的输入中设置数据,然后我有一个 watch 方法来监视要更新的字段,然后我通过这样做将它们推送到 $root。 .
watch: {
amount() {
this.$root.donation.amount = this.amount;
}
}
问题是我的步骤之一是我有很多字段,而且我似乎正在编写一些重复的代码。另外,我确信这不是最好的方法。
我尝试将数据作为prop 传递给我的子组件,但似乎我无法更改子组件中的道具。
除了为我的子组件中的每个值添加监视之外,还有什么更好的方法来更新根实例,甚至是父实例?
更多示例
这是我的step2.vue 文件-step2 vue file
这是我的donation-form.vue 文件-donation-form vue file
【问题讨论】:
标签: vue.js