Управление версиями компонентов Vue, возможно ли что-то в этомроде?

#javascript #vue.js

#javascript #vue.js

Вопрос:

В настоящее время я импортирую свой компонент динамически по мере необходимости, однако, если в компоненте требуется много изменений, я бы хотел создать его новую версию, однако в некотором смысле это все тот же компонент.

У меня есть следующее в моем app.js:

 Vue.component( 'favourites-panel', () => import('./components/Favourites/Panel.vue' );
  

Могу ли я изменить приведенное выше на что-то подобное и получить версию из prop ? Очевидно, что это теоретический код!

 Vue.component( 'favourites-panel', (e) => import('./components/Favourites/Panel'   e.version   '.vue' );
  

Вот как я вызываю свой компонент:

 <favourites-panel version="1"></favourites-panel>
  

Ответ №1:

Нет, это невозможно для «управления версиями» компонента с использованием объекта props.
Прежде всего, вам нужно понять, что вы делаете: Vue.component это функция для глобальной загрузки всех компонентов, которые вы хотите. Вы можете передать абсолютный путь или, если требуется, обещание.
В этом случае вы хотите загрузить свой компонент асинхронно, а оператор import возвращает обещание. Если вы проверите e свойство, вы увидите, что это обратный вызов resolve.
Написание:

 Vue.component( 'favourites-panel', () => import('./components/Favourites/Panel.vue' );
  

или:

 Vue.component('favourites-panel', function (resolve) {
  require(['./components/Favourites/Panel.vue'], resolve)
})
  

Это одно и то же, оба возвращают объект Promise.
Для решения вашей проблемы вы можете добавить переменную окружения, а затем загрузить
компонент в соответствии со значением этой конкретной переменной среды.

Комментарии:

1. Черт, видишь ли, я не могу использовать переменную окружения, поскольку это было бы для каждого клиента и для каждого компонента.

Ответ №2:

Нет, это совершенно неправильный подход как к управлению версиями, так и к управлению зависимостями. Вместо этого вы должны создавать модули NPM вашего компонента (ов), а затем, если по какой-то причине вам нужно снова использовать старый, вы можете npm install использовать старую версию.

Комментарии:

1. У вас есть какие-либо причины для этого? Как будто даже требуется небольшая модификация, с npm это вообще будет невозможно