Как использовать вкладки Vuetify с Vue-маршрутизатором
у меня есть следующие jsfiddle имеет две вкладки Vuetify. В документации не показаны примеры использования vue-router
С ними.
я нашел это Medium.com пост о том, как использовать Vuetify с vue-router
, который имеет следующий код:
<div id="app">
<v-tabs grow light>
<v-tabs-bar>
<v-tabs-item href="/" router>
<v-icon>motorcycle</v-icon>
</v-tabs-item>
<v-tabs-item href="/dog" router>
<v-icon>pets</v-icon>
</v-tabs-item>
</v-tabs-bar>
</v-tabs>
<router-view />
</div>
однако код теперь устарел как Vuetify 1.0.13 вкладки документация не указан router
prop в их api, поэтому встроенный пример в сообщении не работает.
я нашел это StackOverflow ответ, который имел следующий код:
<v-tabs-item :to="{path:'/path/to/somewhere'}">
однако, используя to
prop не работает, и он также не указан в api Vuetify. В отличие от v-button
компонент Vuetify перечисляет to
prop и использует vue-router
, поэтому я ожидал бы vue-router
поддерживаемый компонент для поддержки to
проп.
копаться в старом старый Vuetify 0.17 docs, the to
prop указывается для v-tabs-item
. Кажется, что поддержка могла быть удалена в 1.0.13.
как я могу использовать vue-router
с вкладками Vuetify?
1 ответов
обновление
Боженьки! Я попросил сообщество Vuetify добавить документацию в свой api, и похоже, что они просто добавили to
prop, а также другие vue-router
реквизит Vuetify tabs docs. Серьезно, сообщество там потрясающее.
Оригинальный Ответ
люди в сообществе Vuetify Discord смогли мне помочь. Мой обновленный jsfiddle теперь рабочая код.
по сути, v-tab
- это оболочка для router-link
, где я предполагаю, что он использует слоты для передачи реквизита router-link
, так что ставить to
проп на v-tab
работает нормально.
следующий код является примером рабочего кода:
HTML-код
<v-app dark>
<v-tabs fixed-tabs>
<v-tab to="/foo">Foo</v-tab>
<v-tab to="/bar">Bar</v-tab>
</v-tabs>
<router-view></router-view>
</v-app>
js
const Foo = {
template: '<div>Foo component!</div>'
};
const Bar = {
template: '<div>Bar component!</div>'
};
const routes = [
{ path: '/foo', component: Foo },
{ path: '/bar', component: Bar },
];
const router = new VueRouter({ routes });
new Vue({
el: '#app',
router,
});