【发布时间】:2020-05-05 12:58:14
【问题描述】:
我正在使用 vue-router(和 vuetify)来构建我的网站。我的一切都很好,但我想了解如何使用命名路由而不是路径。
这是我的模板的一部分,如下所示:
<v-list-item v-else :key="item.text" :to="item.to" link>
<v-list-item-action>
<v-icon>{{ item.icon }}</v-icon>
</v-list-item-action>
<v-list-item-content>
<v-list-item-title>
{{ item.text }}
</v-list-item-title>
</v-list-item-content>
</v-list-item>
...
这是我的数据对象:
data: () =>({
items: [
{icon: 'mdi-home', text: 'Home', to: '/'},
{icon: 'mdi-view-dashboard', text: 'Dashboard', to: '/dashboard'},
{
icon: 'mdi-chevron-up', 'icon-alt': 'mdi-chevron-down',
text: 'Locations',
model: false,
children: [
{
icon: 'mdi-map-marker',
text: 'Location One',
to: {name: 'location.show', params: {id: 1}} . // works perfectly
},
{
icon: 'mdi-map-marker',
text: 'Location Two',
to: {name: 'location.show', params: {id: 2}} . // works perfectly
},
],
},
],
}),
这就是我想要做的:
{icon: 'mdi-view-dashboard', text: 'Dashboard', to: {name: 'dashboard'},
代替:
{icon: 'mdi-view-dashboard', text: 'Dashboard', to: '/dashboard'},
但是,当我使用命名路由时,Vuetify 将活动类应用于元素。所以,现在我所有的导航项目都处于活动状态。
如何使用命名路由而不是路径?感谢您的任何建议!
编辑
这是我的 vue-router 的样子:
{
path: "/dashboard",
name: "dashboard",
component: () =>
import(/* webpackChunkName: "dashboard" */ "../views/admin/Dashboard"),
meta: {requiresAuth: true}
},
{
path: "/location/:id",
name: "location.show",
component: () =>
import(/* webpackChunkName: "location.show" */ "../views/admin/location/Show"),
meta: {requiresAuth: true},
props(route) {
const props = {...route.params};
props.id = +props.id;
return props; // returns the param as a string
},
},
【问题讨论】:
-
{icon: 'mdi-view-dashboard', text: 'Dashboard', to: {name: 'dashboard'}你检查了吗?
标签: vue.js vuetify.js vue-router