Маршрутизатор Vue будет поддерживать текущие параметры при навигации, поэтому вы сможете перейти к названному родительскому маршруту.
Например,
this.$router.push({ name: 'account-list' })
Текущий параметр :id
будет восстановлен-used.
Если вы хотите сделать его динамичным, вы можете пробраться вверх по массиву matched
текущего маршрута.Например, чтобы перейти к родительскому текущему маршруту с именем parent
this.$router.push({
name: this.$route.matched[this.$route.matched.length - 2].name
})
Это, конечно, будет работать только на вложенных маршрутах, поскольку длина matched
для маршрутов верхнего уровня составляет всего 1.
Для неименованных маршрутов вы должны составить полный путь со всеми параметрами, интерполированными в строку.Вы можете сделать это, получив свойство 1011 * маршрутов назначения и заменив токены параметров на те, что указаны в this.$route.params
, но это может запутаться.Например,
// get parent path property
let path = this.$route.matched[this.$route.matched.length - 2].path
let realPath = path.replace(/:\w+/g, param =>
this.$route.params[param.substr(1)])
this.$router.push(realPath)
Это не будет работать, если ваши пути используют расширенное сопоставление с образцом.