vue返回上一页的时候,默认都会重新执行生命周期,重新加载数据,这样其实不太友好。那我们仿照微信小程序,返回上一页不会触发onLoad,但是会触发onShow,我们就可以在onShow里面做一些事情。
1、使用keep-alive,控制页面返回不刷新
2、如果只想缓存部分页面,可以在路由中设置一个参数控制
// app.vue
// router/index.js
{
path: '/usermanage',
name: 'usermanage',
meta: {
keepAlive: true, //该字段表示该页面需要缓存
isBack: false, //判断是否是返回
title: '人员管理'
},
component: resolve => require(['@/views/userManage/userManage'], resolve) // 路由懒加载
},
3、路由页面处理
export default {
name: 'userManage',
data() {
return {
isFirstEnter: false
}
},
beforeRouteEnter(to, from, next) {
if (from.name == 'nextName') { // 这个name是下一级页面的路由name