前提:要支持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)); },