Есть страница с формой для фидбека. Пользователь должен ввести свой мейл и сообщение. По умолчанию нужно подставить мейл адрес, который использовался при регистрации, но пользователь должен иметь возможность его изменить.
<form>
<input type="text" v-model="email">
<textarea v-model="message"></textarea>
</form>
Чтобы подставить мейл пользователя, нужно дождаться, пока выполнится запрос (аякс запрос, который сохраняется информацию о пользователе в $store.state.user) и придут данные о нем.
Как мне сделать, чтобы когда данные пришли, они подставились, но пользователь мог их менять?
Работающий вариант у меня получился такой:
<script>
...
data() {
return {
message: '',
email: '',
}
},
watch {
'$store.state.user': function() {
this.email = this.$store.state.email;
}
},
...
</script>
Но он мне не нравится. Хотя может он и верный. Скажите, если это так.
Я пробовал использовать computed вот так:
<script>
...
data() {
return {
message: ''
}
},
computed() {
email() {
return this.$store.state.user.email;
}
},
...
</script>
Но тогда, если пользователь руками поменяет этот адрес, он все равно останется прежним и на сервер уйдет значение из $store.
Как правильно сделать?