Имена компонентов сложить в массив; также добавить свойство, содержащее имя выбранного компонента:
data: () => ({
activeComponent: null,
components: [
{ name: 'component-1', label: '#1' },
{ name: 'component-2', label: 'а я второй' },
{ name: 'component-3', label: 'третьим буду' },
],
}),
На основе массива создать выпадающий список, привязать имя выбранного компонента к списку через
v-model
:
<select v-model="activeComponent">
<option v-for="n in components" :value="n.name">{{ n.label }}</option>
</select>
Если имя компонента выбрано - создать соответствующий экземпляр:
<component v-if="activeComponent" :is="activeComponent"></component>