Есть ли способ предотвратить фактическое изменение v-вкладок при нажатии на них?
В моем случае мне сначала нужно проверить, изменился ли материал на странице, и отменить переключение на другую. вкладка, если она имеет.
Ни event.prevent, ни event.stop не остановят изменение v-вкладок: <v-tab @click.prevent.stop="..."> ... </v-tab>
В настоящее время я использую window.requestAnimationFrame
длясбросить индекс вкладки до старого значения. Он выполняет свою работу, но для меня это похоже на очень неприятную технику.
HTML:
<v-tabs v-model="currentIndex">
<v-tab v-for="(route, index) in list" :key="index" @change="handleTabChange(route, $event)" >
{{ route.meta.title }}
</v-tab>
</v-tabs>
TS:
public handleTabChange(routeConf:RouteConfig):void {
let currentIndex:number = this.currentIndex;
window.requestAnimationFrame(() => {
this.currentIndex = currentIndex;
Store.app.router.goto(routeConf.name, null, this.$route.params);
// Once the page actually changes this.currentIndex is set to the correct index..
});
}