首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >试着理解Vue2的$emit

试着理解Vue2的$emit
EN

Stack Overflow用户
提问于 2018-06-04 06:24:29
回答 2查看 290关注 0票数 0

我想知道Vue2的$emit是如何工作的?

在它的API(https://vuejs.org/v2/api/#vm-emit)上,它说:

当前实例上触发事件。任何额外的参数都将被传递到侦听器的回调函数中。

如果当前实例是指已定义的组件,而其主要用途是向父组件发送信号(https://vuejs.org/v2/guide/components.html#Sending-Messages-to-Parents-with-Events)

我想知道如何理解这一点(事件是如何传递的,这让我很困惑)?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2018-06-04 07:38:23

简单地说,$emit在一个组件中注册一个事件,然后您就可以在使用该组件的其他地方侦听该事件。

假设你有一个Child.vue,并且在这个组件的某个地方,你有:

代码语言:javascript
复制
.$emit('some-event')

然后,您可以在重用Child组件时侦听此事件,例如,在另一个组件SomeComponent.vue中,您可以这样做:

代码语言:javascript
复制
<template>
    <child @some-event="doSomething"></child>
</template>

因此,这里的事件是在子组件中触发的,但您可以使用doSomething决定在父组件中执行什么操作。希望这是有意义的!

票数 0
EN

Stack Overflow用户

发布于 2018-06-04 10:33:27

文档上的措辞可能会让一些人感到困惑。

也许“让vm当前实例调度一个事件”这几行的话会更清楚一些?

最后,它只是一个经典的发布/订阅模式:您的组件实例发出/分派/激发一个事件,而其他组件(通常是父组件)侦听/订阅(v-on / @)该事件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50671516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档