title: Vue Router "push" how to preserve path's query string
body: <p><strong>router.js</strong></p>
  <pre><code>...
  const routes = [
      {
          path: '/',
          name: 'Home',
          component: Home
      },
  
      {
          path: '/x',
          name: 'X',
          component: X
      }
  ];
  ...
  </code></pre>
  <p><strong>x.vue</strong></p>
  <pre><code>...
  mounted() {
      const definedElsewhere = '/?a=b&amp;c=d';
  
      this.$router.push({ path: definedElsewhere });
  
      // This seems to work but I don't know how to access &quot;resolve()&quot;
      // inside &quot;beforeRouteEnter()&quot; with &quot;next()&quot;.
      // this.$router.push(this.$router.resolve(definedElsewhere));
  }
  ...
  </code></pre>
  <p>Good: I'm redirected &quot;Home&quot;.</p>
  <p>Bad: The query string is not preserved unless I use <code>query: { a: 'b', c: 'd' }</code>.</p>
  <p>Question: Is there a way to preserve the query string without using <code>query{}</code> inside <code>push()</code>?</p>