Je veux utiliser Vuetify (v1.0.18) pour rendre une navigation statique en utilisant v-tabs . Le routage étant effectué côté serveur, il me faut un moyen de définir l'onglet actif par propriétés. C'est une tâche très basique, mais je ne le fais pas fonctionner. Exemple:
<v-tabs>
<v-tab href="/path1">Tab 1</v-tab>
<v-tab href="/path2">Tab 2</v-tab>
</v-tabs>
Cela présélectionne le premier onglet - bien.
Maintenant, la question est: Comment présélectionner le deuxième onglet? Est-ce que not work:
<v-tabs value="tab2">
<v-tab id="tab1" href="/path1">Tab 1</v-tab>
<v-tab id="tab2" href="/path2">Tab 2</v-tab>
</v-tabs>
Pour contourner le problème, j'ai créé un composant wrapper:
<template>
<v-tabs v-model="selectedTab">
<slot></slot>
</v-tabs>
</template>
<script>
export default {
name: 'StaticTabs',
props: [ 'selected' ],
mounted() {
this.selectedTab = this.selected
},
data: () => ({
selectedTab: null
}),
}
</script>
Utilisez-le avec ceci:
<static-tabs selected="/path2">
<v-tab id="tab1" href="/path1">Tab 1</v-tab>
<v-tab id="tab2" href="/path2">Tab 2</v-tab>
</static-tabs>
Beaucoup de code pour une tâche très basique, mais cela fonctionne.
Utilisez v-model
:
<v-tabs v-model="activetab_href_variable">
Il n'y a pas d'informations à ce sujet (le 17/05/2018) dans la version actuelle de la documentation mais 0.17 ( https://vuetifyjs.com/releases/0.17/#/components/tabs ) a:
v-model String - Onglet sélectionné en cours
Pour présélectionner un onglet actif:
<v-tabs grow v-model="active_tab">
<v-tab v-for="tab of tabs" :key="tab.id">
{{tab.name}}
</v-tab>
</v-tabs>
La partie script:
export default {
data: () => ({
active_tab: 2,
tabs: [
{ id: 1, name: 'tab1' },
{ id: 2, name: 'tab2' },
{ id: 3, name: 'tab3' }
]
})
}
Note: Nous avons présélectionné l'onglet avec le nom tab3.
N'oubliez pas que vuetify définira le
active_tab
sur l'index de l'onglet actif. Donc, l’indice de l’item 3 est 2 parce qu’il commence à 0.
Pour cet exemple, j'ai utilisé la version de Vuetify: 1.1.9