作为问题的标题, this
上下文在功能组件中不可用。所以如果我必须发出一个事件,我该怎么做呢?
例如在下面的代码片段中:
<template functional>
<div>
<some-child @change="$emit('change')"></some-child>
</div>
</template>
我的功能组件没有 this
上下文,因此 $emit
不可用。我怎样才能冒泡这个事件?
原文由 Harshal Patil 发布,翻译遵循 CC BY-SA 4.0 许可协议
这在将 属性和事件传递给子元素/组件 的文档中进行了解释:
在最基本的层面上,您可以像这样委派所有侦听器:
如果你只想绑定
change
监听器,你可以这样做:但 如果
listeners.change
未定义/空(未提供给功能组件),这将失败。如果你需要处理没有
change
监听器的情况,那么你可以这样做:否则你将不得不通过手动编写渲染函数来解决,因为我认为不可能有条件地将
change
监听器分配给<some-child>
在功能组件的模板中. (或者也许你可以?我不确定。)