Вы можете использовать click
событие по столбцу.
См. Приведенный ниже пример:
<template>
<v-app>
<v-content class="pa-3">
<v-data-table :headers="headers" :items="items">
<template v-slot:item.id="{ item }">
<div style="cursor: pointer" @click.stop="pushOtherPage">{{ item.id }}</div>
</template>
</v-data-table>
</v-content>
</v-app>
</template>
<script>
export default {
name: 'app',
data: () => ({
items: [
{ id: 1, name: 'Option 1' },
{ id: 2, name: 'Option 2' },
{ id: 3, name: 'Option 3' },
],
headers: [
{ text: 'Id', value: 'id' },
{ text: 'Name', value: 'name' },
],
}),
methods: {
pushOtherPage() {
console.log('click in Id column');
this.$router.push({ name: 'other-page' });
},
},
};
</script>
Если щелкнуть имя столбца, ни одно событие не будет отправлено. Но если щелкнуть идентификатор столбца, страница перенаправляется.