Vuejs2 在Vue中-如何触发广播以拾取不同控件中的事件?
我有一个步骤组件,当我单击next按钮时,我需要在我的步骤组件中触发一个事件 此事件应由另一个组件拾取,该组件表示当前步骤中的页面内容 这就是我尝试过的: 步骤组件模板: 我在步骤模板中(在“下一步”按钮上)单击“下一步”,称之为 从console.log中,我看到click事件被执行,$emit调用不会触发任何错误,因此在这一点上它似乎工作正常 摘要部分 摘要组件是“步骤”中的组件之一,由步骤模板中的此条目加载:Vuejs2 在Vue中-如何触发广播以拾取不同控件中的事件?,vuejs2,Vuejs2,我有一个步骤组件,当我单击next按钮时,我需要在我的步骤组件中触发一个事件 此事件应由另一个组件拾取,该组件表示当前步骤中的页面内容 这就是我尝试过的: 步骤组件模板: 我在步骤模板中(在“下一步”按钮上)单击“下一步”,称之为 从console.log中,我看到click事件被执行,$emit调用不会触发任何错误,因此在这一点上它似乎工作正常 摘要部分 摘要组件是“步骤”中的组件之一,由步骤模板中的此条目加载: <component :is="stepPage"></com
<component :is="stepPage"></component>
<div class="wrap" v-on:stepnext="stepfinish">
... content ...
</div>
在Summary组件中,当单击此按钮时,我会尝试通过在模板中添加以下内容来了解此事件:
<component :is="stepPage"></component>
<div class="wrap" v-on:stepnext="stepfinish">
... content ...
</div>
... 内容。。。
。。。摘要组件中名为stepfish
的方法执行该操作,但发出的事件似乎从未到达我的摘要组件
我如何解决这个问题?我想您正在寻找
事件总线
以下是官方文件中的一些片段:
var bus = new Vue()
// in component A's method
bus.$emit('id-selected', 1)
// in component B's created hook
bus.$on('id-selected', function (id) {
// ...
})
链接:
这里有一个相同的博客:使用
$root
时的一个简单解决方案:
// trigger
this.$root.$emit('my-event');
// listen
this.$root.$on('my-event');
你能用提琴或密码笔来演示这个问题吗?我补充了一些关于结构的细节。这应该足以理解问题。是的,我也在考虑这一点,但从vue指南中很难找出如何在任何组件中全局提供这一点。你共享的另一个链接完美地解释了这一点。谢谢!:)了解鳄鱼链接非常有用