title: Vuejs + SSR + router.push() in asyncData
body: <p>I got a VUEJS SSR setup, and can't figure out how to solve this.</p>
  
  <p>My route is like this:</p>
  
  <pre><code>{
    path: '/:blogSlug', component: BlogPost, name: 'blog-post'
  }
  </code></pre>
  
  <p>Then in the asyncData function I have this code:</p>
  
  <pre><code>asyncData({store, route, router}) {
              let slug = route.params.blogSlug
  
              if (!store.state.blog.posts[slug]) {
                  return store.dispatch('FETCH_BLOG_POST', { slug: slug }).catch((error) =&gt; {
                      console.log("error - pushing to /404")
                      router.push('/404');
                  })
              }
  
              return(Promise.resolve());
          }
  </code></pre>
  
  <p>This works now if I disable my javascript, mainly because on the server asyncData() is executed, then if the blog post is not found I push ('/404') which displays a pretty "Not found" page and html is sent back to browser.</p>
  
  <p>Then, mainly because the URL in the browser has NOT changed, during the hydration process everything blows because VueJS is still trying to render the BlogPost component instead of the 404.</p>
  
  <p>My question is, can I set the updated url in my window.<strong>INITIAL_STATE</strong>? 
  Or can I somehow change the URL from the browser?</p>
  
  <p>I can add everything you need to the question if it's not clear.</p>