假设有一些 <Form>
组件。可以使用附加到它的 @cancel
事件侦听器来调用它,如果是这种情况,我想显示触发此事件的取消按钮。如果没有 @cancel
事件,取消按钮应该不可见。
有没有办法检查组件是否附加了事件侦听器?
目前我这样做:
<template>
<form>
<button v-if="cancelEventPassed" @click="$emit('cancel')">Cancel</button>
</form>
</template>
并这样称呼它:
<Form :cancelEventPassed="true" @cancel="handle_cancel" />
任何一个
<Form/>
是否可以在不使用任何其他属性(如 cancelEventPassed
的情况下实现这一目标?
原文由 Kasheftin 发布,翻译遵循 CC BY-SA 4.0 许可协议
当有侦听器附加到组件时,它们在组件的
$listeners
属性中可用。您可以使用该属性来确定特定侦听器是否可用。例如,这是一个计算属性,用于检查
cancel
侦听器是否存在。这是组件中使用的示例。