У меня очень маленькое приложение, которое имеет форму пожертвования. Форма перемещает пользователя через шаги заполнения информации. У меня есть основной компонент, который является оболочкой формы и основным экземпляром Vue, который содержит все данные формы (модели). Все дочерние компоненты - это шаги в рамках процесса пожертвования. Каждый дочерний компонент имеет поля ввода, которые должны быть заполнены, и в этом поле будет обновлена родительская модель, чтобы у меня были все данные формы в родительской модели, когда я отправляю форму. Вот как эти компоненты вместе взятые:Обновить родительскую модель от дочернего компонента 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
Спасибо! Это то, что мне нужно было делать. Очень признателен. – dericcain