Передать пользовательские данные в `$ router.push ()` в vue-router - PullRequest
0 голосов
/ 04 октября 2018

Есть ли способ передать дополнительные данные в $router.push(), которые не зарегистрированы в качестве параметра или запроса в пути маршрута.Это позволит мне на следующей странице распознать, что к нему обращались с помощью программной навигации, поскольку невозможно передать его через URL.Что-то вроде:

this.$router.push({
   path: '/next-page', 
   params: {...}, 
   query: {...}, 
   moreData: {foo: 1}
})

А затем в /next-page:

this.$route.moreData.foo // 1

В настоящее время я использую $store для обработки moreData

1 Ответ

0 голосов
/ 04 октября 2018

Я нашел решение.В документах Vue-router есть Примечание , которое гласит:

Примечание: params игнорируются, если предоставляется path.Вместо этого вам нужно предоставить name

Таким образом, мы можем передавать пользовательские данные в params, если мы перемещаемся с использованием маршрута name вот так:

$router.push({name: 'next-page', params: {foo: 1}})

// in /next-page
$route.params.foo // 1
...