【发布时间】:2023-02-25 03:03:45
【问题描述】:
想象一条具有以下路径的路线: ':uuid*/form/:step'
我们可以在路由器定义中指定步骤参数的默认值吗?
我已经尝试在视图的创建函数上设置此值,但我试图避免重定向。
【问题讨论】:
标签: vue.js vue-router
想象一条具有以下路径的路线: ':uuid*/form/:step'
我们可以在路由器定义中指定步骤参数的默认值吗?
我已经尝试在视图的创建函数上设置此值,但我试图避免重定向。
【问题讨论】:
标签: vue.js vue-router
简短的回答是:不,你不能。
如果用户转到:uuid/form,您必须使用默认步骤值重定向他。但是如果 /uuid/form 页面指向同一个页面组件,重定向不会导致重新渲染,所以从用户的角度来看它几乎是透明的。
如果您控制到此页面的导航,如果不存在,只需在代码中自己设置一个默认值:
const step = userStep || 'defaultStep'
this.$router.push(`/${myUuid}/form/${step}`)
【讨论】:
您可以使用 router navigation guard 实现类似的目的:
routes = [
{
name: 'FormStep',
path: ':uuid*/form/:step'
beforeEnter(route) {
return {
path: route.path,
params: {
...route.params,
step: route.params.step ?? defaultStep
}
}
}
}
]
【讨论】: