久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

深入解析vue中路由切換白屏的問題(附代碼)

之前的文章《淺析vue中complie數(shù)據(jù)雙向綁定原理(代碼詳解)》中,給大家了解了vue中complie數(shù)據(jù)雙向綁定原理。下面本篇文章給大家了解vue中路由切換白屏的問題,伙伴們來看看。

深入解析vue中路由切換白屏的問題(附代碼)

關(guān)于vue路由切換的白屏,事實上在開發(fā)的過程中,我一直沒有遇到過。

我有個哥們遇到這個問題,問我怎么解決的,我暈了,我沒遇到這樣的問題啊,我怎么解決啊啊啊啊。。

事實上是遇到過一回的。

以下內(nèi)容于 2019-07-25 修改。

服務(wù)器部署配置問題

這個問題造成的白屏體現(xiàn)在:

首頁可以正常瀏覽,但是——通過$router.push('/home')跳轉(zhuǎn)頁面 正常,然后刷新就是白屏或 404

本不想在文章加入這個問題和解決方案,因為官網(wǎng)已經(jīng)提供了正確的部署姿勢,(Vue 的路由模式自行查看文檔),主要是針對HTML5 History模式:

const router = new VueRouter({   mode: 'history',   routes: [...] })

devbuild都沒有問題,這個是肯定的,所以問題就出在服務(wù)器配置上,以nginx為例,正確的配置如下:

location / {   ....   try_files $uri $uri/ /index.html; #重點 }

Apache,原生 Node.jsIISCaddyFirebase 主機

請查看vur-router后端配置例子

地址:https://router.vuejs.org/zh/guide/essentials/history-mode.html#%E5%90%8E%E7%AB%AF%E9%85%8D%E7%BD%AE%E4%BE%8B%E5%AD%90

以上內(nèi)容于 2019-07-25 修改。

以下內(nèi)容于 2019-04-23 修改。

如果你是使用腳手架初始化環(huán)境,可以跳過這部分。如果自己配置webpack,可以接著看確定做了如下配置

devServer: {   ...   contentBase: false, //必須   historyApiFallback: true, //必須   ... }, entry: {     app: ['./src/main.js'],     vendors: ['vue', 'vue-router'] //注意這里 }, plugins: [   ....   new HtmlWebpackPlugin({     ...     chunks: ['vendors', 'app'], //注意這里,這里的chunks 要包含入口的 entry   }) ]

以上內(nèi)容于2019-04-23修改。

場景一:IE9(兼容性問題)

嚴格來說不是白屏的問題,應(yīng)該說是兼容性問題,直接就是不支持,報錯了,渲染無法執(zhí)行造成的。解決方式就是

npm i babel-polyfill -D

然后在入口mian.js引入就完事了,就著么簡單

import "babel-polyfill";

或者

//webpack entry: {       app: ['babel-polyfill','./src/main.js'],       vendors: ['vue', 'vue-router'] },

以下內(nèi)容于2019-04-23修改。

假如真的是js兼容性問題,那么真的只是引入babel-polyfill或者在webpack入口加入babel-polyfill問題就能解決嗎,其實不一定的,這個要看項目的使用情況。babel-polyfill不是萬能的。那么如何排查兼容性問題呢(假如真的是兼容性問題)。因為我們在手機上直接調(diào)試,有些錯誤不會那么容易顯而易見。我是這么調(diào)試的。(僅供參考!)

<template>   <div>     <!-- 錯誤直接顯示在這里. 不用 alert() ,console.log()  -->     {{error}} ...     <!-- other element -->   </div> </template> <script>   export default{     data{       return {         error:''       }     },     moundted:{       try{         //一些請求數(shù)據(jù)的方法       }catch(e){         //這里拋出異常         this.error = e       }     }   } </script>

這里要說的是有些兼容性問題是bable-polyfill搞不定的。比如URLSearchParams

let data = new URLSearchParams(); for (var key in params) {   data.append(key, params[key]); }

那么肯定會報URLSearchParams is not undefined,然后,錯誤只在一些低端的機型,一些偶然的場合出錯.加大了錯誤的排查。

以下可以解決URLSearchParams is not undefined

//# console npm i url-search-params-polyfill  //# mian.js import 'url-search-params-polyfill';

以上內(nèi)容于2019-04-23修改。

場景二 :如下圖

有人說是在iphone 5s或者6s上會出現(xiàn)這種問題,肯定不是手機的bug。于是我重現(xiàn)了場景,真的和設(shè)備無關(guān)

深入解析vue中路由切換白屏的問題(附代碼)

所以這個跟設(shè)備真的沒有關(guān)系。知道問題所在,當然解決辦法也有許多

方案一:暴力愚蠢型

//路由跳轉(zhuǎn)前滾動條清零 document.body.scrollTop = document.documentElement.scrollTop = 0; this.$router.push({ path: "/a/b/c" });

方案二:可行但不可選型

//給router 加一個監(jiān)聽,一旦改變,執(zhí)行清零,然后再跳轉(zhuǎn) let routers = new Router({.....}) routers.beforeEach(function (to, from, next) {     ......     document.body.scrollTop = document.documentElement.scrollTop = 0     next() })

雖然可行,但是感覺著么干有點愚蠢。因為還有更好的寫法,這個寫法更佳優(yōu)雅

方案三:最佳型

其實官方已經(jīng)提供了當路由切換時,控制滾動位置的方式。scrollBehavior

使用方式如下:

const router = new VueRouter({   routes: [...],   scrollBehavior (to, from, savedPosition) {     // return 期望滾動到哪個的位置 { x: number, y: number } |  { selector: string } |   } })

scrollBehavior方法接收tofrom路由對象。第三個參數(shù)savedPosition當且僅當popstate導(dǎo)航(通過瀏覽器的前進/后退按鈕觸發(fā)) 時才可用。

所以假如要解決白屏的問題,可以著么干

const router = new VueRouter({   routes: [...],   scrollBehavior (to, from, savedPosition) {     return savedPosition || { x: 0, y: 0 }   } })

也就是說,當用戶點擊返回、前進的時候,頁面會滾動到之前位置,(微信朋友圈的文章就是這樣的,讀一半返回,再進來接著剛才的位置閱讀)

如果是新的pagemounted進來的時候,就重置為 0

完美的解決了這個問題。

但是這也是個問題,框架為什么不默認呢,假如自定義的時候可以overwirte

場景三: 緩存的原因(2019.4.15)

我們根據(jù)版本號(或者hash)去控制緩存問題,當我們發(fā)布新版本,會發(fā)現(xiàn)html里面引用的版本號卻是舊的版本號 ,這種情況是入口index.html文件被緩存了,很多時候我們設(shè)置禁止html文件被緩存,但依然會出現(xiàn)被緩存的情況。比如在頭部加

<meta http-equiv="Expires" content="0" /> <meta http-equiv="Pragma" content="no-cache" /> <meta http-equiv="Cache-control" content="no-cache" /> <meta http-equiv="Cache" content="no-cache" />

仍然解決不了問題,關(guān)于web的緩存策略,推薦這篇文章:Http緩存機制

一旦index.html被緩存了,之后我們使用了全量更新,也就是每次發(fā)版本之前會干掉之前的jscss文件,那么被緩存的index.html會無法加載之前舊的js,css還有一些其他的靜態(tài)資源文件,而新的jscss則不會被加載,那么白屏就誕生了。

這個時候我們就要配合服務(wù)端來解決index.html的緩存問題

解決緩存的問題請轉(zhuǎn)到這里:Vue index.html入口緩存問題

[完]

推薦學習:vue.js教程

贊(1)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
国产乱码精品一区二区三区亚洲人 | 波多视频一区| 久久精品二区亚洲w码| 精品九九在线| 免费看av不卡| 99热精品在线| 美女久久一区| 国产欧美日韩精品高清二区综合区| 麻豆极品一区二区三区| 你懂的网址国产 欧美| 日本不良网站在线观看| 欧美 日韩 国产一区二区在线视频 | 国产探花一区在线观看| 另类专区亚洲| 久热综合在线亚洲精品| 国产亚洲人成a在线v网站 | 欧美国产视频| 国产精品亚洲一区二区三区在线观看| 麻豆精品蜜桃| 蜜臀av性久久久久蜜臀aⅴ流畅| 国产精品网址| 亚洲a在线视频| 日韩三级精品| www.51av欧美视频 | 久久久亚洲一区| 一级成人国产| 精品视频在线一区二区在线| 亚洲调教视频在线观看| 日韩va欧美va亚洲va久久| 黄色在线网站噜噜噜| 99国产精品私拍| 久久精品资源| 国产免费成人| 精品欧美日韩精品| 免费在线欧美视频| 97在线精品| 日韩福利视频网| 久久一区二区中文字幕| 欧美日本久久| aa国产精品| 日本一区二区高清不卡| 亚洲午夜国产成人| 日韩精品诱惑一区?区三区| 日本精品久久| 午夜精品免费| 成人在线视频免费| 日本中文字幕视频一区| 成人日韩精品| 国产精品观看| 蜜臀久久99精品久久久久宅男| sm捆绑调教国产免费网站在线观看| 亚洲另类av| 亚洲性色视频| 成人在线免费观看91| 少妇精品久久久| 红桃视频国产一区| 福利在线免费视频| 欧美日一区二区在线观看| 亚洲精品一二三区区别| 日韩av在线播放网址| 国产精品视频一区二区三区综合| 亚洲美洲欧洲综合国产一区 | 亚洲一二av| 好吊一区二区三区| 色在线中文字幕| 精品视频国内| 国产精品多人| 日韩精品91亚洲二区在线观看| 亚洲成人日韩| 99热精品久久| 国产 日韩 欧美一区| 精品女同一区二区三区在线观看| 91嫩草精品| 日本午夜精品视频在线观看| 亚洲综合小说| 美女尤物久久精品| 亚洲精品一二三区区别| 亚洲国产专区校园欧美| 久久人人精品| 99久久www免费| 伊伊综合在线| 蜜臀国产一区| 日韩在线短视频| 欧美日韩免费观看视频| 日韩免费av| 999国产精品永久免费视频app| 中文字幕高清在线播放| 国产videos久久| 欧美xxxx中国| 热三久草你在线| 四虎国产精品免费观看| 精品国产一区二区三区av片| 精品中文字幕一区二区三区四区| 欧美成人精品午夜一区二区| 久久一区亚洲| 给我免费播放日韩视频| 黄色在线网站噜噜噜| 欧美不卡高清一区二区三区| 亚洲香蕉网站| 男人天堂欧美日韩| 亚洲精品自拍| 久久国内精品| 国产成人精选| 久久久精品日韩| 国产精品呻吟| 亚洲日产国产精品| 国产欧美日韩亚洲一区二区三区| 国产精品日韩精品在线播放| 欧美aaaaaa午夜精品| 国产理论在线| 婷婷丁香综合| 亚洲精品极品| 国产精品伊人| 在线中文字幕播放| 一本一本久久| 日韩超碰人人爽人人做人人添| 免费亚洲一区| 欧美成人久久| 日韩在线电影| 国产+成+人+亚洲欧洲在线| av高清一区| 蜜桃一区二区三区在线观看| 国产精品毛片视频| 日韩电影在线视频| 国产一区白浆| 国产精品亚洲二区| 久久精品国产68国产精品亚洲| 免费在线视频一区| 麻豆精品视频在线| 国产一在线精品一区在线观看| 蜜芽一区二区三区| 麻豆91在线播放| 黄色国产精品| 麻豆精品99| 天堂成人国产精品一区| 国产精品视频一区二区三区综合 | 水野朝阳av一区二区三区| 国产亚洲欧美日韩精品一区二区三区| caoporn视频在线| 亚洲区国产区| 成人看片网站| 欧美日韩网址| 日韩视频一区二区三区在线播放免费观看| 91福利精品在线观看| 久久精品官网| 国产激情欧美| 欧美特黄一区| 久久久免费人体| 丝袜国产日韩另类美女| 国产精品13p| 欧美天堂在线| 亚洲激情二区| 在线天堂资源www在线污| 亚洲精品少妇| 1024精品一区二区三区| 国产欧美一区二区三区精品观看| 欧美亚洲在线日韩| 久久99蜜桃| 在线精品国产亚洲| 成人在线网站| 久久中文欧美| 蜜桃视频在线观看一区| 日韩精品免费一区二区在线观看| 欧美精品影院| 久久国产66| 99精品在线观看| 久久婷婷国产| 久久精品超碰| 最新国产精品久久久| 亚洲国产成人精品女人| 国产一区二区三区四区大秀| 日本91福利区| 亚洲一级淫片| 亚洲一区二区动漫| 日韩精品一区二区三区免费观影| 久久99影视| 日本一区福利在线| 免费欧美日韩| 亚洲精品一区二区妖精| 激情黄产视频在线免费观看| 国产精品亚洲综合色区韩国| 日韩一区免费| 伊人久久大香伊蕉在人线观看热v| 99久久精品国产亚洲精品| 色爱综合网欧美| 成人日韩av| 日韩成人免费| 国产videos久久| 高清精品久久| sm捆绑调教国产免费网站在线观看| 国产麻豆精品| 日韩精品一区二区三区免费视频| 香蕉久久国产| 免费黄网站欧美| 日韩中文字幕区一区有砖一区| 五月天久久久| 亚洲欧洲一区二区天堂久久| 久久亚洲专区| 亚洲精品91| 狠狠色综合网|