Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Vue路由器可选第一个参数_Javascript_Vue.js_Vuejs2_Vue Router - Fatal编程技术网

Javascript Vue路由器可选第一个参数

Javascript Vue路由器可选第一个参数,javascript,vue.js,vuejs2,vue-router,Javascript,Vue.js,Vuejs2,Vue Router,我有一个路由列表,所有路由都可以有一个可选的第一个参数。如果参数出现在url中,它将更改我在api调用中使用的头。其他一切都是一样的 有没有一种方法可以将第一个参数列为可选参数并只定义一次路由,而不是创建两组路由来处理此问题 对于所有路线,前面可能有一个:environment参数: /:environment/:event\u identifier/register/pages/:pages\u uuid 也可以是: /:事件标识符/寄存器/页面/:页面ID 其他一切都将保持不变 let

我有一个路由列表,所有路由都可以有一个可选的第一个参数。如果参数出现在url中,它将更改我在api调用中使用的头。其他一切都是一样的

有没有一种方法可以将第一个参数列为可选参数并只定义一次路由,而不是创建两组路由来处理此问题

对于所有路线,前面可能有一个
:environment
参数:

/:environment/:event\u identifier/register/pages/:pages\u uuid
也可以是:

/:事件标识符/寄存器/页面/:页面ID
其他一切都将保持不变

let routes=[{
路径:'/:event_identifier/register/pages/:page_uuid',
名称:'ContentPage',
组件:ContentPage,
元:{
是的,
},
}, {
路径:'/:event_identifier/register/:pagenum',
名称:'注册',
组成部分:寄存器,
元:{
是的,
},
}, {
路径:'/:event_identifier',
名称:'登录',
组件:登录,
儿童:[{
路径:'/:event\u identifier/:registration\u uuid/:pagenum',
名称:'editRegistration',
组件:登录,
}]
}]

您可以声明如下可选参数:

path:“/myroute/:param?”
之后的
:param
使其成为可选的,因此它将与无参数或参数匹配

但是,我建议让你的可选参数在每条路线上都是最后一个。否则,你会有一些不清楚的行为。假设您有一个这样的路由路径,其中有一个可选的第一个参数

path:'/myroute/:可选?/:notoptional'
如果您访问
http://domain/myroute/25/100
,则
25
将匹配
:可选?

但是如果您访问
http://domain/myroute/25
,则
25
将匹配
:非可选