web-dev-qa-db-ja.com

カスタムデータをvue-routerの `$ router.Push()`に渡します

ルートのパスでパラメーターまたはクエリとして登録されていない追加データを$router.Push()に渡す方法はありますか?これにより、URLを介して渡す方法がないため、プログラムによるナビゲーションを介してアクセスされたことを次のページで認識できます。何かのようなもの:

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

そして/next-page

this.$route.moreData.foo // 1

現在、moreDataを処理するために$storeを使用しています

4
Slim

私は解決策を見つけました。 Vue-router docsNoteがあります:

注:paramsが指定されている場合、pathは無視されます...代わりに、nameを指定する必要があります

したがって、次のようにルートのparamsを使用してナビゲートすると、カスタムデータをnameに渡すことができます。

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

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