Vue預渲染打包後,刷新會閃現首頁的解決

vue預渲染後打包上線後,刷新當前頁面後會出現首頁突然展示,隨即再回到當前路由下頁面的情況。

這是因爲在使用prerender-spa-plugin預渲染後,配置是對應的路由會生成index.html文件。因爲配置預渲染需要將路由配置爲history模式,在Nginx或者apache配置裏,會將url重定向到根目錄的index.html,所以在頁面還沒有被vue給接管的時候,刷新的一瞬間是會展示預渲染時候生成的根目錄的index.html的內容。

 可以看到生成的index.html文件

上圖是通過預渲染生成的index.html文件的 內容。刷新時候展示的就是這個。

解決:

我選擇了一種比較笨的解決方案,就是在默認把根目錄的index.html中id=app的元素設置爲display:none。

然後在app.vue被掛載後,將該屬性設置爲block,即可。因爲在app.vue被掛載後說明頁面肯定已經被vue給接管。所以可行。

 

到此就結束了,如果刷新過程中出現白屏,可以在index.hml裏面寫一個loading動畫,優化體驗 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章