const addCard = (cardName) => {
cards.value.push({
id: Date.now(),
component: cardName,
order: cards.value.length + 1,
isRequired: false
})
}
Что такое cardName? Не то, что вам, судя по имени параметра, кажется. Это не имя, а сам объект компонента. И вы его потом в localStorage засовываете. Так что методы setup и render теряются.
Сложите компоненты в объект:
const components = {
ShortTextCard,
LongTextCard,
SingleQuestionCard,
MultiQuestionCard,
};
Передавайте в addCard их имена:
- @click="addCard(ShortTextCard)"
+ @click="addCard('ShortTextCard')"
Когда надо экземпляр компонента создать, доставайте объект компонента по его имени из упомянутого выше объекта:
- :is="card.component"
+ :is="components[card.component]"