У меня есть форма на вью. Форма должны использоваться на разных сайтах. На них нужны разные инпуты.
Понятно, что можно добавить в форму все виды инпутов и, например, использовать
< component :is='нужный инпут в зависимости от пропса'>
, либо тупо несколько форм в одной ифами.
Пока нашел для себя решение: сделать vue компонент для каждого сайта с двумя свойствами, в нем вызывать базовую форму через extends, а нужные компоненты брать миксином.
B хотелось бы не плодить файлы миксинов типо ComponentsForSomeSite.js, а сделать, например, функцию, которая бы возвращала нужные импорты.
Хотелось бы, чтобы выглядело как-то так. Можно ли сделать что-то подобное или подскажите, как лучше все организовать?
import PhoneInput from '@core/inputs/PhoneInput.vue';
export default function (type) {
let CustomInput;
if (type === 'material'){
CustomInput = import('@core/inputs/MaterialInput.vue');
}
else {
CustomInput = import('@core/inputs/BaseInput.vue');
}
return {
components:{
CustomInput,
PhoneInput
}
}
};