当前位置:首页 > VUE

vue on emit实现

2026-02-19 17:54:33VUE

Vue 中的 $emit 实现

在 Vue 中,$emit 是子组件向父组件传递数据的主要方式。通过自定义事件,子组件可以触发父组件中定义的方法,并传递数据。

基本用法

子组件中通过 $emit 触发事件:

this.$emit('event-name', data);

父组件中监听子组件触发的事件:

<child-component @event-name="handleEvent" />

示例代码

子组件 (ChildComponent.vue):

<template>
  <button @click="sendMessage">发送消息</button>
</template>

<script>
export default {
  methods: {
    sendMessage() {
      this.$emit('message', 'Hello from child!');
    }
  }
};
</script>

父组件 (ParentComponent.vue):

<template>
  <child-component @message="receiveMessage" />
</template>

<script>
import ChildComponent from './ChildComponent.vue';

export default {
  components: { ChildComponent },
  methods: {
    receiveMessage(msg) {
      console.log(msg); // 输出: Hello from child!
    }
  }
};
</script>

事件验证

Vue 3 中可以通过 emits 选项对事件进行验证:

vue on emit实现

export default {
  emits: {
    'event-name': (payload) => {
      return typeof payload === 'string'; // 验证 payload 类型
    }
  }
};

注意事项

  • 事件名推荐使用 kebab-case 命名(如 my-event
  • 可以通过 $emit 的第二个参数传递多个数据(使用对象包装)
  • Vue 3 中移除了 $on$off 等事件 API,推荐使用 emits 选项

标签: vueon
分享给朋友:

相关文章

vue实现批量

vue实现批量

Vue 实现批量操作的方法 在 Vue 中实现批量操作通常涉及选择多个项目并执行统一处理,例如批量删除、批量更新等。以下是几种常见实现方式: 表格多选批量操作 使用 el-table 配合复选框实现…

vue筛选实现

vue筛选实现

Vue 筛选实现方法 使用计算属性实现筛选 计算属性是 Vue 中实现数据筛选的常用方式。通过定义一个计算属性,可以根据输入的条件动态过滤数据。 <template> <div…

vue代理实现

vue代理实现

Vue 代理实现方法 在 Vue 项目中,配置代理可以解决开发环境下的跨域问题,通常通过修改 vue.config.js 文件实现。以下是几种常见的代理配置方式: 基础代理配置 在 vue.conf…

vue实现 单选

vue实现 单选

实现 Vue 单选功能 在 Vue 中实现单选功能可以通过多种方式完成,以下是几种常见的方法: 使用 v-model 绑定单选按钮 通过 v-model 可以轻松实现单选功能,将单选按钮的值绑定到同…

vue核心实现

vue核心实现

Vue 核心实现原理 Vue.js 的核心实现主要包括响应式系统、虚拟 DOM、模板编译和组件化机制。以下是关键实现原理的详细说明: 响应式系统 Vue 使用 Object.defineProper…

vue实现画廊

vue实现画廊

Vue实现画廊的基本方法 使用Vue.js实现画廊功能可以通过多种方式完成,以下是一种常见的实现方案: 安装必要依赖 npm install vue-gallery --save 引入组件并注册…