Vue3 Emits 用法
什么是 emits
在 Vue3 中,emits 是一个组件选项,用于声明组件可以触发的自定义事件。通过使用 emits,我们可以明确地告诉其他开发者和使用者,组件可以触发哪些事件,以及事件的参数类型。
使用 emits
在组件中,我们可以通过 emits 选项来声明组件可以触发的事件。emits 是一个数组,包含了组件可以触发的所有事件的名称。每个事件名称可以是一个字符串或一个函数。
声明事件名称
const MyComponent = {
  emits: ['update', 'delete']
}
上面的代码中,MyComponent 组件声明了两个事件名称,分别是 updatedelete
声明事件名称和参数类型
除了声明事件名称,我们还可以声明事件的参数类型。通过在事件名称后面添加一个冒号和参数类型,我们可以告诉其他开发者和使用者,事件的参数应该是什么类型。
const MyComponent = {
  emits: {
    update: (payload) => {
      return typeof的用法typeof payload === 'string';
    },
    delete: null
  }
}
上面的代码中,MyComponent 组件声明了两个事件名称,分别是 updatedelete。其中,update 事件的参数类型是字符串,而 delete 事件没有参数。
触发事件
在组件中,我们可以通过 $emit 方法来触发事件。$emit 接受两个参数,第一个参数是事件名称,第二个参数是事件的参数。
this.$emit('update', 'Hello, Vue3!');
上面的代码中,我们触发了 update 事件,并且传递了一个字符串参数 'Hello, Vue3!'
监听事件
在父组件中,我们可以通过在子组件上使用 v-on 指令来监听子组件触发的事件。
<template>
  <MyComponent @update="handleUpdate"></MyComponent>
</template>
<script>
import MyComponent from './MyComponent.vue';
export default {
  methods: {
    handleUpdate(payload) {
      console.log(payload);
    }
  }
}
</script>
上面的代码中,我们在父组件中监听了子组件触发的 update 事件,并将触发的参数打印到控制台上。
总结
通过使用 emits 选项,我们可以明确地声明组件可以触发的自定义事件,并告诉其他开发者和使用者事件的参数类型。这样可以增加代码的可读性和可维护性,同时也方便了组件的复用和扩展。
希望本文对你理解 Vue3 中的 emits 用法有所帮助。如果你想了解更多关于 Vue3 的内容,请查阅官方文档。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。