首页 > 解决方案 > 路由推送后发出事件是否安全

问题描述

我有一个按钮应该将用户从一个页面重定向到另一个页面:

this.$router.push('/my-profile/messages');
this.$nextTick(() =>
    this.$eventBus.$emit('passUserToMessages', user)
);

然后在消息页面上,我正在收听此事件:

this.$eventBus.$on('passUserToMessages', (user) => {
    this.usersToChatWith.push(user);
});

这可以保证页面总是先加载数据返回块然后我的事件来填充列表

标签: javascriptvuejs2event-bus

解决方案


如果$router.push是异步操作,则不,您不能保证,如果路由加载了某些内容并且您只想在加载成功完成后发出此事件,那么发出事件的理想位置就是那个地方。


推荐阅读