Я думаю, что слоты - это путь, но так как они содержат объекты vdom, мы должны использовать vue, чтобы преобразовать его в html. Должно работать следующее:
computed: {
html(){
return new Vue({
render: h => h('div', {}, this.$slots.default)
})
.$mount().$el.innerHTML
}
}
Мы создаем простой экземпляр компонента, который имеет только функцию рендеринга, а затем мы $mount
создаем DOM, а затем извлекаем innerHTML
из корневого элемента.
ПРИМЕЧАНИЕ. Вам нужно будет импортировать Vue в этот файл