<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        Vue scrollBehavior 滾動行為實現后退頁面顯示在上次瀏覽的位置

        來源:懂視網 責編:小采 時間:2020-11-27 21:56:16
        文檔

        Vue scrollBehavior 滾動行為實現后退頁面顯示在上次瀏覽的位置

        Vue scrollBehavior 滾動行為實現后退頁面顯示在上次瀏覽的位置:前提: 之前寫過關于keep-Alive組件,來實現在列表頁進入詳情頁后,后退,返回列表,顯示上次訪問的位置(原理就是緩存列表頁數據來實現),目前發現另外一個問題,就是如果后臺操作改變數據的狀態,緩存的辦法就會導致數據更新不及時導致一些頁面錯誤(例如
        推薦度:
        導讀Vue scrollBehavior 滾動行為實現后退頁面顯示在上次瀏覽的位置:前提: 之前寫過關于keep-Alive組件,來實現在列表頁進入詳情頁后,后退,返回列表,顯示上次訪問的位置(原理就是緩存列表頁數據來實現),目前發現另外一個問題,就是如果后臺操作改變數據的狀態,緩存的辦法就會導致數據更新不及時導致一些頁面錯誤(例如

        前提:

        之前寫過關于keep-Alive組件,來實現在列表頁進入詳情頁后,后退,返回列表,顯示上次訪問的位置(原理就是緩存列表頁數據來實現),目前發現另外一個問題,就是如果后臺操作改變數據的狀態,緩存的辦法就會導致數據更新不及時導致一些頁面錯誤(例如:商品疑問,在后臺答復之后,不可以修改內容,前臺更新不及時就會導致,前臺顯示可編輯,但實際狀態是不可編輯了),所以又繼續研究另外一種解決辦法,scrollBehavior 來實現。

        簡介:

        使用前端路由,當切換到新路由時,想要頁面滾到頂部,或者是保持原先的滾動位置,就像重新加載頁面那樣。 vue-router 能做到,而且更好,它讓你可以自定義路由切換時頁面如何滾動。

        注意: 這個功能只在支持 history.pushState 的瀏覽器中可用。

        官方文檔簡介: 滾動行為

        使用方法:

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

        或者集成模式寫法:

        utils.js

        export function scrollBehavior (to, from, savedPosition) {
         // return 期望滾動到哪個的位置
        }

        index.js

        import Vue from 'vue'
        import Router from 'vue-router'
        import { scrollBehavior } from './utils'
        Vue.use(Router)
        const router = new Router({
         mode: 'history',
         scrollBehavior,
         routes: [
         ...routesPC,
         ...routesMO
         ]
        })
        export default router

        scrollBehavior 方法接收 to 和 from 路由對象。第三個參數 savedPosition 當且僅當 popstate 導航 (通過瀏覽器的 前進/后退 按鈕觸發) 時才可用。

        在該方法內,可以通過判斷路由to,from兩個對象來做一些必要的判斷;

        savedPosition 參數是記錄的上次滾動的位置;

        通過return {x:number,y:number}來控制頁面滾動的位置;

        對于所有路由導航,簡單地讓頁面滾動到頂部。

        scrollBehavior (to, from, savedPosition) {
         return { x: 0, y: 0 }
        }

        想要在后退時,滾動到上次滾動的位置,如果滿足條件,savedPosition有值的情況下:

        scrollBehavior (to, from, savedPosition) {
         if (savedPosition) {
         return savedPosition
         } else {
         return { x: 0, y: 0 }
         }
        }

        新增情況:異步滾動

        當頁面數據需要請求加載有延遲的情況下,頁面如果直接滾動,會出現滾動后,頁面數據請求回來,DOM重新渲染,滾動失效的情況;

        所以官方文檔給補充了異步滾動的方法:

        scrollBehavior (to, from, savedPosition) {
         return new Promise((resolve, reject) => {
         setTimeout(() => {
         resolve({ x: 0, y: 0 })
         }, 500)
         })
        }


        這個會在返回后,有一定延遲再滾動,可以根據自己項目的具體情況進行一定修改,兼容;

        注:我的項目mobile端數據加載使用的是vue-mugen-scroll滑動加載數據組件,網上沒找到能觸發它加載的方法,所以,在返回列表頁后,數據刷新,只有一頁數據,滾動到底,也找不到上次的數據,嗚嗚嗚......所以還是沒有解決我的問題,但是這個方法是很好的,只是使用情況,會有限制,記錄一下,以備后用。

        總結

        以上所述是小編給大家介紹的Vue scrollBehavior 滾動行為實現后退頁面顯示在上次瀏覽的位置,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
        如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        Vue scrollBehavior 滾動行為實現后退頁面顯示在上次瀏覽的位置

        Vue scrollBehavior 滾動行為實現后退頁面顯示在上次瀏覽的位置:前提: 之前寫過關于keep-Alive組件,來實現在列表頁進入詳情頁后,后退,返回列表,顯示上次訪問的位置(原理就是緩存列表頁數據來實現),目前發現另外一個問題,就是如果后臺操作改變數據的狀態,緩存的辦法就會導致數據更新不及時導致一些頁面錯誤(例如
        推薦度:
        標簽: 位置 的位置 VUE
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 免费一级毛片在线观看| 日本牲交大片免费观看| 亚洲国产成人精品无码区在线观看| 深夜A级毛片视频免费| 日本无卡码免费一区二区三区| 亚洲色欲色欱wwW在线| 成人黄18免费视频| 国产精品无码亚洲精品2021| 亚洲国产精品一区二区三区久久| 免费精品国产自产拍在线观看| 又大又黄又粗又爽的免费视频 | 亚洲综合区图片小说区| 99久久久国产精品免费牛牛| 18gay台湾男同亚洲男同| 国产一卡2卡3卡4卡2021免费观看| 亚洲自国产拍揄拍| 国产成人综合久久精品免费| 成人a毛片视频免费看| 久久久久久a亚洲欧洲aⅴ| 久久大香伊焦在人线免费| 亚洲精品视频观看| 性xxxx视频播放免费| 五月天婷婷精品免费视频| 亚洲αv久久久噜噜噜噜噜| 中文字幕在线免费| 亚洲精品9999久久久久无码| 亚洲av成人一区二区三区在线观看| a级毛片在线免费看| 亚洲国色天香视频| 亚洲国产精品视频| 亚洲电影免费观看| 亚洲AV日韩AV一区二区三曲| 老司机亚洲精品影视www| 四虎在线最新永久免费| 大桥未久亚洲无av码在线| 国产亚洲3p无码一区二区| 一二三四在线观看免费高清中文在线观看 | 久久免费99精品国产自在现线| 亚洲日本va午夜中文字幕一区| 成人免费777777| 久久久精品午夜免费不卡|