打开vue-cli项目中的 router.js
文件,添加mode
。
在需要记录浏览位置的组件中添加meta
如下:
export default new Router({
mode: 'history', //这里
routes: [
{
path: '/',
name: 'HelloWorld',
component: HelloWorld,
children:[
{
path: '/',
component: MainPage,
meta: { //这里
title: 'home',
keepAlive: true,
}
}
]
}
]
})
然后修改app.vue
如下:
<template>
<div id="app">
<keep-alive>
<router-view v-if="$route.meta.keepAlive"></router-view>
</keep-alive>
<router-view v-if="!$route.meta.keepAlive"></router-view>
</div>
</template>
这样写的意义就是不缓存所有页面,哪个地方写了keepAlive:true
,哪个地方就记录位置(加缓存).
这样位置就记录上了(加缓存,返回不刷新页面),也就是说,返回不触发created,所以有些页面需要返回触发的东西都应该写在activated里面。
现在就可以去试一下,是不是设置meta
的组件在返回时可以回到之前的浏览位置了。
来源http://m.blog.youkuaiyun.com/zjl516088421/article/details/77937440