В приложении, над которым я работаю, у нас есть много модалов, каждый из которых содержит небольшой объем данных, обычно 2-3 поля, иногда флажки, списки и т. Д. c.
Вопрос в том, как выполнить сброс / уничтожение компонент изнутри, когда он закрыт. Причина этого может быть двоякой:
1) Не нужно очищать отдельные поля данных на каждом модале.
2) Наблюдатели на реквизитах будут снова запускаться, когда модал открывается во второй раз (некоторые модалы). являются «редактировать» и, следовательно, предварительно заполнены, я бы предпочел не управлять этими данными).
Теперь, если модальный был закрыт снаружи, то я мог бы изменить ключ на компоненте, и это решило бы проблему, так как модальный закрыт изнутри компонента, тогда я не знаю, смогу ли я это сделать (было бы здорово). Как вы настраиваете свои модалы? Какой будет чистая архитектура?
Пример кода:
<parentComp>
<customChildModal ref="$customChildModal"></customChildModal>
</parentComp>
// customChildModal
<v-dialog v-model="dialogState">
<v-text-field v-model="name">
...
</v-text-field>
<v-btn @click="dialogState = false">Cancel</v-btn>
<v-btn @click="saveSomething">Save</v-btn>
...
data(){
return {
dialogState: false,
name: ''
...
Теперь в некоторых случаях у меня действительно много полей, и мне нужно, чтобы они очищались каждый раз при закрытии модального окна. Это должно охватывать случаи, когда нажимается «Отмена», а также когда пользователь щелкает за пределами модальной клавиши или клавиши ES C, которую я поддерживаю.