Кто пользовался всякими vuetify наверняка видели что там можно делать пропс tag="li" и тд.
В завимости от этого в шаблоне компонента выставляется нужный тег.
Как вообще это можно реализовать?
В vuetify используют render функцию, в ней первый параметр это текстовая строка с названием тэга.
Если в tempalte, то через component, в is название тэга
Если используешь однофайловые компоненты, то вычисляешь тег в вычисляемых свойствах или как тебе надо, а в шаблоне используешь: <component :is="yourTag">.