Vue.js 重定向后如何使用vuejs全局事件通知

Vue.js 重定向后如何使用vuejs全局事件通知,vue.js,vuejs2,vue-component,Vue.js,Vuejs2,Vue Component,我在名为app.js的文件中创建了一个名为EvenBus的全局vuejs事件,如下所示: window.EventBus = new Vue(); 从数据库中删除一个人后,我重定向到主页页面,并发出一个名为deleted的事件,如下所示: import {app} from '../app'; export default { methods: { deleteMe: function () { axios.delete('/api/persons/' + this.p

我在名为
app.js
的文件中创建了一个名为
EvenBus
的全局vuejs事件,如下所示:

window.EventBus = new Vue();
从数据库中删除一个人后,我重定向到
主页
页面,并发出一个名为
deleted
的事件,如下所示:

import {app} from '../app';
export default {
methods: {
    deleteMe: function () {
        axios.delete('/api/persons/' + this.person.id)
        .then(response => {
            window.location.href = '/home';

            EventBus.$emit('deleted', {
                notification_msg: 'This person has been successfully deleted.',
            });
        })
},
}
在主页上,我插入了一个标记
,链接到名为
notify.vue
的组件。 在此组件中,我添加了以下脚本:

import {app} from '../app';
export default {
/* ... */
mounted() {
    let that = this;
    console.log(EventBus);
    EventBus.$on('deleted', function(data){
        alert('person deleted!!' + data.notification_msg);
        that.msg_text = data.notification_msg;
    });
},
}
当删除发生时,我成功地重定向到
主页
页面,但那里什么也没有发生。
警报('person deleted!!…')
从未出现。 代码执行时没有错误

我是否缺少使我的组件侦听发出的事件的内容

编辑
console.log(EvenBus)notify.vue
文件的code>显示有一个名为“已删除”的事件(下面是c.f.printscreen)

这里的问题是,当执行这行代码时

window.location.href = '/home';
您所在的页面将替换为
/home
页面。因此,它甚至可能从未到达发出事件的行,如果它到达,则在加载页面时侦听事件的对象将消失


您可能想研究一下如何使用VueRouter,这样页面就不会被破坏。除此之外,在重定向时可能会告诉服务器在加载页面时需要显示通知。

重定向到
/home
会导致页面加载是?是,它作为http请求加载。它不是使用ajax或任何东西完成的。仅
window.location.href='/home'所以…你发出的事件基本上已经不存在了,因为页面已经不存在了,如果它发出的话。好吧,我明白了。请将您的评论添加为答案,这样我就可以根据您的需要做出回答。我刚刚通过添加打印屏幕编辑了我的原始问题。如果事件按照您的建议消失了,那么在重定向之后,我怎么会看到一个名为
deleted
的事件?行
console.log(EventBus)
写在组件
notify
@Warrio中。控制台显示了您在
$on
上注册的处理程序。不幸的是,这是真的:D。谢谢!