前提:要支持keep-alive
编辑App.vue
<keep-alive> <router-view v-if="$route.meta.keepAlive" /> </keep-alive> <router-view v-if="!$route.meta.keepAlive" />
页面路由设置keepAlive:true:
{
path: 'task-list',
component: (resolve) => require(['../page/wwg/task-list.vue'], resolve),
meta: {
keepAlive:true
}
},
新建eventbus.js
import Vue from 'vue'
/**
* 定义空的vue实例,作为 eventbus实现非父子组件之间的通信(vue2.x中去掉了broadcast)
*/
var eventBus = new Vue({});
export default eventBus;
后退的页面
import eventBus from '../service/eventbus.js';
methods:{
goback(hospital){
eventBus.$emit('choiceHospital',hospital);
this.$router.go(-1);
}
}
获取参数页面
import eventBus from '../service/eventbus.js';
//每次激活时
activated(){ //activated只有启动keepalive才能出发
eventBus.$on('choiceHospital', function(data){
this.nearestOrg = data;
}.bind(this));
},