İşte dokümanlardaki örnek:
// with query, resulting in /register?plan=private
router.push({ path: 'register', query: { plan: 'private' }})
Referans: https://router.vuejs.org/en/essentials/navigation.html
Bu belgelerde belirtildiği router.replacegibi , şu şekilde çalışır:router.push
Öyleyse, söz konusu örnek kodunuzda doğru şekilde var gibi görünüyor. Ancak , yönlendiricinin gezinmek için bazı rotaları olması için, nameveya pathparametresini de eklemeniz gerekebileceğini düşünüyorum . Bir nameveya olmadan pathçok anlamlı görünmüyor.
Şu anki anlayışım bu:
query yönlendirici için isteğe bağlıdır - görünümü oluşturmak için bileşenin bazı ek bilgileri
nameveya pathzorunludur - içinde hangi bileşenin gösterileceğine karar verir <router-view>.
Örnek kodunuzdaki eksik şey bu olabilir.
DÜZENLE: Yorumlardan sonra ek ayrıntılar
Bu durumda adlandırılmış yolları kullanmayı denediniz mi? Dinamik rotalarınız vardır ve parametreleri ve sorguyu ayrı ayrı sağlamak daha kolaydır:
routes: [
{ name: 'user-view', path: '/user/:id', component: UserView },
// other routes
]
ve sonra yöntemlerinde:
this.$router.replace({ name: "user-view", params: {id:"123"}, query: {q1: "q1"} })
Teknik olarak yukarıdakiler ile arasında bir fark yoktur this.$router.replace({path: "/user/123", query:{q1: "q1"}}), ancak adlandırılmış rotalarda dinamik parametreler sağlamak, rota dizesini oluşturmaktan daha kolaydır. Ancak her iki durumda da sorgu parametreleri dikkate alınmalıdır. Her iki durumda da, sorgu parametrelerinin işlenme biçiminde yanlış bir şey bulamadım.
Rotaya girdikten sonra, dinamik parametrelerinizi this.$route.params.idve sorgu parametrelerinizi olarak alabilirsiniz this.$route.query.q1.