title: vue.js router NavigationDuplicated for query changes
body: <p>My router in html is </p>
  
  <pre><code>  &lt;div&gt;
                  &lt;transition name="slide-fade"&gt;
                      &lt;router-view :key="$route.fullPath"&gt;&lt;/router-view&gt;
                  &lt;/transition&gt;
              &lt;/div&gt;
  
  </code></pre>
  
  <p>Vue.js Code: </p>
  
  <pre><code>this.$router.push({ path : this.$route.matched[0].path , query: Object.assign(this.$route.query, { id: r.jo }) }).then(function(o){
        console.error(o);
        this.showObj.mode='edit';
      }).catch(function(e){
        console.error(e);
        _this.onQueryChange({ newQuery : { id: r.jo }, replaceAll : false  });
        _this.showObj.mode='edit';
      });
  </code></pre>
  
  <p>Even after adding <code>:key="$route.fullPath"</code> if i change the query in url i still get error</p>
  
  <p>ERROR Message : </p>
  
  <pre><code>NavigationDuplicated {_name: "NavigationDuplicated", name: "NavigationDuplicated", message: "Navigating to current location ("/contest/fast?id=k0uwjji35741hb") is not allowed", stack: "Error↵    at new NavigationDuplicated (https://unp…lare.com/ajax/libs/vue/2.6.10/vue.min.js:6:11384)"}
  message: "Navigating to current location ("/aa/bb?id=j3j3") is not allowed"
  name: "NavigationDuplicated"
  _name: "NavigationDuplicated"
  stack: "Error↵    at new NavigationDuplicated (https://unpkg.com/vue-router/dist/vue-router.js:1980:16)↵    at HashHistory.confirmTransition (https://unpkg.com/vue-router/dist/vue-router.js:2096:20)↵    at HashHistory.transitionTo (https://unpkg.com/vue-router/dist/vue-router.js:2040:10)↵    at HashHistory.replace (https://unpkg.com/vue-router/dist/vue-router.js:2481:12)↵    at https://unpkg.com/vue-router/dist/vue-router.js:2798:24↵    at new Promise (&lt;anonymous&gt;)↵    at VueRouter.replace (https://unpkg.com/vue-router/dist/vue-router.js:2797:14)↵    at a.showDetails  
  </code></pre>
  
  <p>Any suggestion to allow query changes in url like ?id</p>