У меня есть несколько форм.У каждого из них одинаковая логика (проверка, отправка ...), поэтому я хочу создать один метод для управления действиями в моих формах.На данный момент мой код является избыточным, потому что у меня одинаковые методы onSubmit()
для каждого .vue файла.
мой HTML:
<div id="app">
<myform-one></myform-one>
<myform-two></myform-two>
</div>
мой JavaScript ( main.js - входной файл в веб-пакете):
import Vue from 'vue';
import Myform1 from './myform1.vue';
import Myform2 from './myform2.vue';
new Vue({
el: '#app',
components: {
myformOne: Myform1,
myformTwo: Myform2
}
});
и файлы компонентов VUE:
myform1.vue :
<template>
<div>
<form @submit.prevent="onSubmit">
<input type="text" v-model="fields.fname11" />
<input type="text" v-model="fields.fname12" />
<button type="submit">submit</button>
</form>
</div>
</template>
<script>
let formfields = {
fname11: '',
fname12: ''
};
export default {
data() {
return {
fields: formfields
}
},
methods: {
onSubmit() {
// code responsible for reading, validating and sending data here
// ...
console.log(this.fields);
}
},
}
</script>
и myform2.vue :
<template>
<div>
<form @submit.prevent="onSubmit">
<input type="text" v-model="fields.fname21" />
<input type="text" v-model="fields.fname22" />
<input type="text" v-model="fields.fname23" />
<button type="submit">submit</button>
</form>
</div>
</template>
<script>
let formfields = {
fname21: '',
fname22: '',
fname23: '',
};
export default {
data() {
return {
fields: formfields
}
},
methods: {
onSubmit() {
// code responsible for reading, validating and sending data here
// ...
console.log(this.fields);
}
},
}
</script>
Как создать и использовать один общий метод submitForm()
?И где его код должен быть (хорошая практика)?