使用Vue Router路由懶加載引發(fā)的生產(chǎn)頁面白屏問題的解決方法
1.項目技術棧
項目使用vue3 + Vue Router + ant-design-vue,構建工具使用 vite.
- 框架: vue3
- 組件庫: andt-design-vue
- 路由: Vue Router
- 構建工具: vite
2.問題現(xiàn)象
- 1.本地開發(fā)階段,一切正常沒有任何問題。
- 2.通過nginx部署到開發(fā)環(huán)境后,訪問該前端,其他所有功能均正常無任何問題。
- 3.當訪問
/deviceMgmt/deviceLogQuery頁面時,頁面白屏,控制臺無任何報錯。
3.問題排查
剛看到這個問題還是挺懵的,自己本地開發(fā)環(huán)境沒有問題,一部署到開發(fā)環(huán)境就出問題,而且還是沒有任何報錯、警告、提示。根據(jù)上面的現(xiàn)象,初步想到以下幾個可能造成該問題的原因:
3.1 路徑問題
- 前端訪問的路徑寫錯了
- 路由配置的路徑跟組件的路徑寫錯了
但是通過仔細對比發(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'),
}
]
路由配置中如果使用路由懶加載,呢組件的導入配置,component 是通過() => import(./MyPage.vue) 的方式導入。 這里少了 () => ,直接導入了。
4.問題解決
通過git版本對比發(fā)現(xiàn),原來是路由懶加載的配置寫錯了

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

修改配置,重新打包部署,問題解決。
5.總結
- Vue Router 路由懶加載引發(fā)的生產(chǎn)頁面白屏問題: 是由于路由懶加載的配置寫錯造成的
- 寫代碼的過程: 需要更加細致,原本是一個很小的問題,就是不夠仔細才發(fā)生
- git的重要性: 一定要多提交代碼,出現(xiàn)問題時才能更好的溯源
- 給Vue Router的建議: 建議直接將警告改成報錯,并且增加提示
以上就是使用Vue Router路由懶加載引發(fā)的生產(chǎn)頁面白屏問題的解決方法的詳細內(nèi)容,更多關于Vue Router懶加載引發(fā)頁面白屏的資料請關注腳本之家其它相關文章!
相關文章
vue打包部署到springboot并通過tomcat運行的操作方法
這篇文章主要介紹了vue打包部署到springboot并通過tomcat運行的操作方法,本文通過實例圖文并茂的形式給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧2024-05-05
vue-simple-uploader上傳成功之后的response獲取代碼
這篇文章主要介紹了vue-simple-uploader上傳成功之后的response獲取代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧~2020-09-09

