【发布时间】:2019-04-21 04:57:54
【问题描述】:
我使用 vue-router 通过用户 ID 导航用户页面。 router.js 如下所示
export default new Router({
mode: 'history',
base: process.env.BASE_URL,
routes: [
{
path: '/user/:id',
name: 'user',
component: () =>
import(/* webpackChunkName: "user" */ './views/User.vue'),
props: true
},
{
path: '/404',
name: '404',
component: () => import('./views/404.vue'),
},
]
})
如果有人转到/user/some-invalid-id的网址,我该如何重定向到404页面?
在我的应用中,所有用户数据都加载到 App.js 的breforecreate(),并且在内部,现有用户的用户视图访问方式如下
<router-link :to="{name: 'user', params:{id: u.pk}}" >
<a> {{u.first_name}} {{u.last_name}} </a>
</router-link>
我知道可以通过推送函数调用以编程方式重定向。但我不知道应该在哪里使用这段代码。
this.$router.push('/404')
在User.vue 视图页面中,我使用一个名为userByID 的vuex getter 来检索数据。
userByID: (state) => id => {
return state.users.find(u => (u.pk == id))
}
router.push('/404') 应该发生在 userByID 或其调用者中吗?我们如何处理带有undefined用户对象的模板渲染?
【问题讨论】:
标签: vue.js vue-router