İş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.replace
gibi , ş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, name
veya path
parametresini de eklemeniz gerekebileceğini düşünüyorum . Bir name
veya 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
name
veya path
zorunludur - 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.id
ve sorgu parametrelerinizi olarak alabilirsiniz this.$route.query.q1
.