解决vue页面之间滚动互相影响
问题:比如在A页面滑动到底部,并点击按钮跳转到B页面,B页面如果也是长页面就会滚动到与A页面相同的位置
期望:进入B页面时,滚动位置为0
思路:在route->index.js页面,在路由配置页给B页面加上meta:{scrollToTop:true},在scrollBehavior方法中判断meta.scrollToTop为true的路由,x:0,y:0即可
route->index.js import Vue from 'vue' import VueRouter from 'vue-router' Vue.use(VueRouter); const routes = [ { path: '/b', component: () => import('@/views/B.vue'), meta: { title: 'B', scrollToTop: true }, name: 'B', }, ] const router = new VueRouter({ mode: 'history', // 访问路径不带#号 routes, scrollBehavior (to, from, savedPosition) { const position = {} if (to.matched.some(m => m.meta.scrollToTop)) { position.x = 0 position.y = 0 } return position }, base: '/' // 默认配置 }) export default router