我個人猜測可能是對路由的數據檢測深度不夠吧,單純修改query里面的屬性是不能觸發數據驅動的,因此要直接給query賦值新的對象才能驅動數據更新,做法如下
第一種
var query=JSON.parse(JSON.stringify(this.$route.query)) query.id="success" this.$router.push({path:'/url',query:query})
第二種
var query={id:'123456'} this.$router.push({path:'/',query:query})
兩種方法都大同小異,原理都是給query新的對象,而不是修改query的屬性值,因為query本質是一個對象地址,指向存放這個對象的堆空間,堆空間改變,query值並沒有改變,因此route會認為數據沒有改變而沒有更新路由。