当我的点击浏览器的刷新之后,会先出现首页页面,然后才显示我刷新前的页面,这个问题也是非常困扰我
网上各种搜寻无果,我尝试打印路由信息,看看执行了几次,结果也是正常执行了一次,但是就是会刷新先跳转到首页

我在网上看到有个博主的如下说法,感觉比较符合

vue预渲染后打包上线后,刷新当前页面后会出现首页突然展示,随即再回到当前路由下页面的情况。
这是因为在使用prerender-spa-plugin预渲染后,配置是对应的路由会生成index.html文件。因为配置预渲染需要将路由配置为history模式,在Nginx或者apache配置里,会将url重定向到根目录的index.html,所以在页面还没有被vue给接管的时候,刷新的一瞬间是会展示预渲染时候生成的根目录的index.html的内容。
————————————————
版权声明:本文为CSDN博主「Christiano_Lee」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Christiano_Lee/article/details/94569119

和我的情况大致相似,我的项目也是进行了vue预渲染,但是我按照那位博主的写法,仍然不行,几番周折下,稍微修改,总算解决了

在app.vue中
1、
<div id="app" ref="vueDom" style="display:none">
    <router-view/>
  </div>

2、
  mounted(){
    setTimeout(()=>{
        this.$refs.vueDom.style.display = 'block'
    },1000)
  },

原理应该是那位博主说的那样,只是我必须要加延时器才行,我也只能暂时如此了,如果有遇到过类似的情况,有好的解决办法的,或者对这个原因的发生有更好的见解的,欢迎评论指出

Logo

前往低代码交流专区

更多推荐