Vue 声明触发的事件
跳到导航
跳到搜索
组件可以显式地通过 defineEmits() 宏来声明它要触发的事件:
<script setup> defineEmits(['inFocus', 'submit']) </script>
我们在 <template> 中使用的 $emit 方法不能在组件的 <script setup> 部分中使用,但 defineEmits() 会返回一个相同作用的函数供我们使用:
<script setup> const emit = defineEmits(['inFocus', 'submit']) function buttonClick() { emit('submit') } </script>
defineEmits() 宏不能在子函数中使用。如上所示,它必须直接放置在 <script setup> 的顶级作用域下。