1. 程式人生 > 實用技巧 >vue-router中的滾動行為

vue-router中的滾動行為

官方文件:

https://router.vuejs.org/zh/guide/advanced/scroll-behavior.html#%E5%BC%82%E6%AD%A5%E6%BB%9A%E5%8A%A8

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

實際例子:通過vue-router提供的scrollBehavior函式來控制滾動的位置的不由切換頁面而改變

 1 //建立路由
 2 export const createRouter = () => new VueRouter({
3 // https://router.vuejs.org/zh/guide/advanced/scroll-behavior.html#%E5%BC%82%E6%AD%A5%E6%BB%9A%E5%8A%A8 4 // 這個方法 是控制滾動條 5 // 如果 retuen falsy || {} ,則不發生滾動 6 scrollBehavior (to, from, savedPosition) { 7 // savedPosition 這個引數當且僅當導航 (通過瀏覽器的 前進/後退 按鈕觸發) 時才可用 效果和 router.go() 或 router.back() 8 if
(savedPosition) { 9 // 返回savedPosition 其實就是 當用戶點選 返回的話,保持之前遊覽的高度 10 return savedPosition 11 } else { 12 if (from.meta.keepAlive) { 13 from.meta.savedPosition = document.body.scrollTop 14 } 15 return { 16 x: 0, 17 y: to.meta.savedPosition || 0 18
} 19 } 20 }, 21 mode: 'history', 22 routes: [...PageRouter, ...ViewsRouter] 23 })