当前位置:首页 > VUE

vue on emit实现

2026-02-19 17:54:33VUE

Vue 中的 $emit 实现

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

基本用法

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

vue on emit实现

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

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

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

示例代码

子组件 (ChildComponent.vue):

vue on emit实现

<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 选项对事件进行验证:

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 中实现积分功能通常涉及前端展示、交互逻辑以及与后端 API 的通信。以下是常见的实现方法和步骤: 积分展示组件 创建一个积分展示组件,用于显示当前用户的积分。可以使…

vue权限实现

vue权限实现

Vue 权限实现方案 基于路由的权限控制 通过路由守卫实现权限验证,在路由配置中添加meta字段标记权限要求。在router.beforeEach中检查用户权限与路由要求的匹配情况。 // rout…

vue 实现流程

vue 实现流程

Vue 实现流程 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。以下是 Vue 实现的基本流程: 安装 Vue.js 通过 CDN 引入或使用 npm/yarn 安装:…

vue实现双向

vue实现双向

Vue 实现双向绑定的方法 Vue 的双向绑定主要通过 v-model 指令实现,它结合了数据绑定和事件监听,适用于表单元素(如 input、select、textarea 等)。以下是几种常见的实现…

vue实现循环

vue实现循环

Vue 实现循环的方法 在 Vue 中,可以通过 v-for 指令实现循环渲染列表或对象。以下是几种常见的用法: 遍历数组 使用 v-for 遍历数组时,可以同时获取当前项和索引: <ul&…

vue系统实现

vue系统实现

Vue 系统实现的关键步骤 项目初始化与配置 使用 Vue CLI 或 Vite 创建项目,安装核心依赖(如 Vue 3、Vue Router、Pinia)。配置开发环境(如 ESLint、Prett…