У меня есть модальный компонент в Vue.
В этом модальном компоненте есть несколько полей формы:
<template>
<div :class="visible">
<input type="text" v-model="form.name">
<input type="text" v-model="form.email">
<input type="text" v-model="form.pass">
<button @click="sendForm">Submit</button>
<button @click="closeModal">Close</button>
</div>
</template>
<script>
export default {
data() {
return {
visible: false,
form: {
name: '',
email: '',
pass: ''
}
}
},
methods: {
sendForm() {
// Send form
},
showModal() {
this.visible = true
},
closeModal() {
this.visible = false
}
},
}
</script>
Когда модальное окно становится видимым, я показываю форму поля пользователю. Допустим, пользователь заполняет поля формы, но не нажимает «Отправить». Вместо этого он закрывает модальное окно.
В данном случае я хочу reset
модального окна полностью вернуть в исходную форму. В основном уничтожить компонент. Затем повторно инициализируйте его, когда пользователь нажимает кнопку, чтобы сделать его видимым.
Когда модальное окно снова станет видимым, компонент должен быть новым экземпляром, и все component data
должны быть очищены.
Что я пробовал: Я пытался очистить значения формы в компоненте при закрытии. Однако с более сложными формами / компонентами может быть трудно сбросить каждое свойство данных в исходное состояние.
Как я могу уничтожить компонент и воссоздать его? Есть ли лучшие практики для этой ситуации?