router.js
import Vue from 'vue'
import Router from 'vue-router'
import Index from '@/pages/index.vue'
import Search from '@/pages/search.vue'
Vue.use(Router)
export default new Router({
mode: 'history',
routes: [
{path: '/',component: Index},
{path: '/index',component: Index},
{path: '/search',component: Search}
],
scrollBehavior (to, from, savedPosition) {
if (savedPosition) {
console.log(1)
return savedPosition
} else {
console.log(2)
if (from.meta.keepAlive) {
from.meta.savedPosition = document.body.scrollTop;
}
return { x: 0, y: to.meta.savedPosition ||0}
}
}
})
App.vue
<template>
<div>
<transition name="router-fade" mode="out-in">
<keep-alive>
<router-view v-if="$route.meta.keepAlive"></router-view>
</keep-alive>
</transition>
<transition name="router-fade" mode="out-in">
<router-view v-if="!$route.meta.keepAlive"></router-view>
</transition>
</div>
</template>
在search页面点击返回按钮 调用的是this.$router.go(-1),结果返回到index页的时候,index页又刷新了一遍,怎么避免?照理说后退的时候不是应该无刷新后退的吗。。