@ivankirshin

Как сделать динамические импорты?

У меня есть форма на вью. Форма должны использоваться на разных сайтах. На них нужны разные инпуты.
Понятно, что можно добавить в форму все виды инпутов и, например, использовать
< 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
        }
    }
};
  • Вопрос задан
  • 392 просмотра
Пригласить эксперта
Ответы на вопрос 2
0xD34F
@0xD34F Куратор тега Vue.js
Понятно, что можно добавить в форму все виды инпутов и, например, использовать
< component :is='нужный инпут в зависимости от пропса'>

Вот так и поступите. Регистрируете все возможные компоненты, сделав их асинхронными.
Ответ написан
@ChoasEmptiness
Можно например сделать те что можно цеплять - глобальными как вариант.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы