Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vuejs2 在Vue中-如何触发广播以拾取不同控件中的事件?_Vuejs2 - Fatal编程技术网

Vuejs2 在Vue中-如何触发广播以拾取不同控件中的事件?

Vuejs2 在Vue中-如何触发广播以拾取不同控件中的事件?,vuejs2,Vuejs2,我有一个步骤组件,当我单击next按钮时,我需要在我的步骤组件中触发一个事件 此事件应由另一个组件拾取,该组件表示当前步骤中的页面内容 这就是我尝试过的: 步骤组件模板: 我在步骤模板中(在“下一步”按钮上)单击“下一步”,称之为 从console.log中,我看到click事件被执行,$emit调用不会触发任何错误,因此在这一点上它似乎工作正常 摘要部分 摘要组件是“步骤”中的组件之一,由步骤模板中的此条目加载: <component :is="stepPage"></com

我有一个步骤组件,当我单击next按钮时,我需要在我的步骤组件中触发一个事件

此事件应由另一个组件拾取,该组件表示当前步骤中的页面内容

这就是我尝试过的:

步骤组件模板: 我在步骤模板中(在“下一步”按钮上)单击“下一步”,称之为 从console.log中,我看到click事件被执行,$emit调用不会触发任何错误,因此在这一点上它似乎工作正常

摘要部分 摘要组件是“步骤”中的组件之一,由步骤模板中的此条目加载:

<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指南中很难找出如何在任何组件中全局提供这一点。你共享的另一个链接完美地解释了这一点。谢谢!:)了解鳄鱼链接非常有用