Если я верно понимаю, что "3 вида страницы" подразумевает различные виды отображения одного и того же контента
<template>
<component :is="dynamicComponent"
:someProps="ololoProps"
/>
</template>
<script>
export default {
name: 'OloloComponent',
data() {
return {
ololoData: 'someShit',
};
},
computed: {
dynamicComponent() {
if (someCondition) {
return () => import('pages/card.vue');
} else if (someAnotherCondition) {
return () => import('pages/post.vue'');
}
return () => import('pages/tag.vue'');
},
ololoProps() {
return { ololo1: 'testData', ololo2: 'test2' };
},
},
}
</script>