I have created a reusable data table by using vuetify. Everything is working fine. I have passed headers and items as a props for using the data table in different component.
I am using slot but using some different approach which is column based solution with if/else condition. But, i need single slot so it couldn't be component centric.
Here is my sample Data table code
<v-data-table
:headers="headers"
:items="items"
:items-per-page="8"
:hide-default-footer="true"
hide-actions
item-key="name"
class="elevation-1"
>
<template slot="items" slot-scope="props">
<td v-for="(header, index) in headers" :key="index">
<template v-if="(header.type === 'aId')">
{{ props.item[header.value] }}
</template>
<template v-else-if="(header.type === 'aName')">
{{ props.item[header.value] }}
</template >
<template v-else>
{{ props.item[header.value] }}
</template>
</td>
</template>
</v-data-table>
Here i am passing one 'template' property in table header fields and based on condition i can change respective columns but it sounds component specific. Is there any better approach to do that?