使用Vue Router路由懶加載引發(fā)的生產(chǎn)頁面白屏問題的解決方法
1.項(xiàng)目技術(shù)棧
項(xiàng)目使用vue3 + Vue Router + ant-design-vue,構(gòu)建工具使用 vite.
- 框架: vue3
- 組件庫: andt-design-vue
- 路由: Vue Router
- 構(gòu)建工具: vite
2.問題現(xiàn)象
- 1.本地開發(fā)階段,一切正常沒有任何問題。
- 2.通過nginx部署到開發(fā)環(huán)境后,訪問該前端,其他所有功能均正常無任何問題。
- 3.當(dāng)訪問
/deviceMgmt/deviceLogQuery頁面時,頁面白屏,控制臺無任何報錯。
3.問題排查
剛看到這個問題還是挺懵的,自己本地開發(fā)環(huán)境沒有問題,一部署到開發(fā)環(huán)境就出問題,而且還是沒有任何報錯、警告、提示。根據(jù)上面的現(xiàn)象,初步想到以下幾個可能造成該問題的原因:
3.1 路徑問題
- 前端訪問的路徑寫錯了
- 路由配置的路徑跟組件的路徑寫錯了
但是通過仔細(xì)對比發(fā)現(xiàn),路由配置路徑跟組件路徑都沒有任何問題,故排除了路徑問題
3.1 路由配置問題
查看頁面元素發(fā)現(xiàn),訪問/deviceMgmt/deviceLogQuery路徑時,app容器內(nèi)的組件為空。 并且之后發(fā)現(xiàn)之前部署的上一個前端版本是沒有問題的,但是只要換成現(xiàn)在重新編譯的版本就有這個問題。
通過git版本對比發(fā)現(xiàn),原來是路由懶加載的配置寫錯了造成的
// router>index.js
const routes = [
{
name: 'deviceLogQuery',
path: '/deviceMgmt/deviceLogQuery',
//? 正確寫法
// component: () => import('../views/deviceLogQuery/test.vue'),
// ? 錯誤寫法
component: import('../views/deviceLogQuery/index.vue'),
}
]
路由配置中如果使用路由懶加載,呢組件的導(dǎo)入配置,component 是通過() => import(./MyPage.vue) 的方式導(dǎo)入。 這里少了 () => ,直接導(dǎo)入了。
4.問題解決
通過git版本對比發(fā)現(xiàn),原來是路由懶加載的配置寫錯了

并且仔細(xì)查看控制臺發(fā)現(xiàn)原來Vue Router 已經(jīng)報警提示了:但是只在第一次加載才會報警告??(自己沒仔細(xì)看)

修改配置,重新打包部署,問題解決。
5.總結(jié)
- Vue Router 路由懶加載引發(fā)的生產(chǎn)頁面白屏問題: 是由于路由懶加載的配置寫錯造成的
- 寫代碼的過程: 需要更加細(xì)致,原本是一個很小的問題,就是不夠仔細(xì)才發(fā)生
- git的重要性: 一定要多提交代碼,出現(xiàn)問題時才能更好的溯源
- 給Vue Router的建議: 建議直接將警告改成報錯,并且增加提示
以上就是使用Vue Router路由懶加載引發(fā)的生產(chǎn)頁面白屏問題的解決方法的詳細(xì)內(nèi)容,更多關(guān)于Vue Router懶加載引發(fā)頁面白屏的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
vite構(gòu)建vue3項(xiàng)目的全過程記錄
vite是VUE3創(chuàng)建項(xiàng)目的工具,項(xiàng)目大了之后,性能明顯優(yōu)于webpack,下面這篇文章主要給大家介紹了關(guān)于vite構(gòu)建vue3項(xiàng)目的相關(guān)資料,需要的朋友可以參考下2023-01-01
Vue實(shí)現(xiàn)圖片預(yù)覽功能的詳細(xì)指南
在現(xiàn)代 web 應(yīng)用程序中,圖片預(yù)覽功能提升了用戶體驗(yàn),使用戶可以在上傳圖片之前查看圖片內(nèi)容,本文將詳細(xì)介紹如何在 Vue.js 應(yīng)用中實(shí)現(xiàn)圖片預(yù)覽功能,包括基本實(shí)現(xiàn)、進(jìn)階功能、與 Element UI 的集成、常見優(yōu)化技巧以及與其他庫的結(jié)合使用,需要的朋友可以參考下2024-09-09
在vue項(xiàng)目中設(shè)置一些全局的公共樣式
這篇文章主要介紹了在vue項(xiàng)目中設(shè)置一些全局的公共樣式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05
Vue3如何解決路由緩存問題(響應(yīng)路由參數(shù)的變化)
這篇文章主要介紹了Vue3如何解決路由緩存問題(響應(yīng)路由參數(shù)的變化),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03
vue3-vite安裝后main.ts文件和tsconfig.app.json文件報錯解決辦法
Vue.js是一個流行的JavaScript框架,它可以幫助開發(fā)者構(gòu)建交互式Web應(yīng)用程序,這篇文章主要給大家介紹了關(guān)于vue3-vite安裝后main.ts文件和tsconfig.app.json文件報錯解決辦法,需要的朋友可以參考下2023-12-12
vue項(xiàng)目登錄成功拿到令牌跳轉(zhuǎn)失敗401無登錄信息的解決
這篇文章主要介紹了vue項(xiàng)目登錄成功拿到令牌跳轉(zhuǎn)失敗401無登錄信息的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02
vue深度監(jiān)聽(監(jiān)聽對象和數(shù)組的改變)與立即執(zhí)行監(jiān)聽實(shí)例
這篇文章主要介紹了vue深度監(jiān)聽(監(jiān)聽對象和數(shù)組的改變)與立即執(zhí)行監(jiān)聽實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09
Vue響應(yīng)式原理與虛擬DOM實(shí)現(xiàn)步驟詳細(xì)講解
在Vue中最重要、最核心的概念之一就是響應(yīng)式系統(tǒng)。這個系統(tǒng)使得Vue能夠自動追蹤數(shù)據(jù)變化,并在數(shù)據(jù)發(fā)生變化時自動更新相關(guān)的DOM元素。本文將會探討Vue響應(yīng)式系統(tǒng)的實(shí)現(xiàn)原理及其底層實(shí)現(xiàn)2023-03-03

