欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue scrollBehavior 滾動行為實(shí)現(xiàn)后退頁面顯示在上次瀏覽的位置

 更新時間:2019年05月27日 10:50:07   作者:采蘑菇的小姑娘  
這篇文章主要介紹了Vue scrollBehavior 滾動行為實(shí)現(xiàn)后退頁面顯示在上次瀏覽的位置,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下

前提:

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

簡介:

使用前端路由,當(dāng)切換到新路由時,想要頁面滾到頂部,或者是保持原先的滾動位置,就像重新加載頁面那樣。 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 路由對象。第三個參數(shù) savedPosition 當(dāng)且僅當(dāng) popstate 導(dǎo)航 (通過瀏覽器的 前進(jìn)/后退 按鈕觸發(fā)) 時才可用。

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

savedPosition 參數(shù)是記錄的上次滾動的位置;

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

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

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

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

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

新增情況:異步滾動

當(dāng)頁面數(shù)據(jù)需要請求加載有延遲的情況下,頁面如果直接滾動,會出現(xiàn)滾動后,頁面數(shù)據(jù)請求回來,DOM重新渲染,滾動失效的情況;

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

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


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

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

總結(jié)

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

相關(guān)文章

  • 解決vue v-for src 圖片路徑問題 404

    解決vue v-for src 圖片路徑問題 404

    今天小編就為大家分享一篇解決vue v-for src 圖片路徑問題 404,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • vue3組件庫添加腳本的實(shí)現(xiàn)示例

    vue3組件庫添加腳本的實(shí)現(xiàn)示例

    本文主要介紹了vue3組件庫添加腳本的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • vue監(jiān)聽屏幕尺寸變化問題,window.onresize很簡單

    vue監(jiān)聽屏幕尺寸變化問題,window.onresize很簡單

    這篇文章主要介紹了vue監(jiān)聽屏幕尺寸變化問題,window.onresize很簡單,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 學(xué)習(xí)Vue框架中必掌握的重點(diǎn)知識

    學(xué)習(xí)Vue框架中必掌握的重點(diǎn)知識

    這篇文章主要介紹了學(xué)習(xí)Vue中必掌握的重點(diǎn)知識,想了解vue的同學(xué)可以參考下
    2021-04-04
  • vue使用el-select下拉框匹配不到值的問題及解決

    vue使用el-select下拉框匹配不到值的問題及解決

    這篇文章主要介紹了vue使用el-select下拉框匹配不到值的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • vue2中使用quill編輯器+表格功能(步驟詳解)

    vue2中使用quill編輯器+表格功能(步驟詳解)

    這篇文章主要介紹了vue2中使用quill編輯器+表格功能,本文分步驟結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • 如何構(gòu)建一個Vue插件并生成npm包

    如何構(gòu)建一個Vue插件并生成npm包

    這篇文章主要介紹了如何構(gòu)建一個Vue插件并生成npm包,幫助大家更好的理解和使用vue,方便以后的開發(fā),感興趣的朋友可以了解下
    2020-10-10
  • vue登錄頁面回車執(zhí)行事件@keyup.enter.native問題

    vue登錄頁面回車執(zhí)行事件@keyup.enter.native問題

    這篇文章主要介紹了vue登錄頁面回車執(zhí)行事件@keyup.enter.native問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • vue 如何實(shí)現(xiàn)表單校驗(yàn)

    vue 如何實(shí)現(xiàn)表單校驗(yàn)

    這篇文章主要介紹的是vue 如何實(shí)現(xiàn)表單校驗(yàn)的方法,又代碼詳細(xì)解說,感興趣的小伙伴可以參考下面文章的具體內(nèi)容
    2021-09-09
  • vue3實(shí)現(xiàn)國際化的過程與遇到的問題詳解

    vue3實(shí)現(xiàn)國際化的過程與遇到的問題詳解

    像很多大型的網(wǎng)址,特別是跨國際等公司網(wǎng)頁,訪問來自世界各地用戶,所以網(wǎng)頁的國際化極其重要的需求,這篇文章主要給大家介紹了關(guān)于vue3實(shí)現(xiàn)國際化的過程與遇到的問題的相關(guān)資料,需要的朋友可以參考下
    2022-05-05

最新評論