当前位置:首页 > 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 实现单点登录(SSO)方案 单点登录(SSO)允许用户在多个相关但独立的系统中使用同一组凭证登录。以下是基于 Vue 的实现方案: 基于 OAuth2/OpenID Connect 的实现…

vue实现同步

vue实现同步

Vue 实现同步的方法 在 Vue 中实现同步操作通常涉及数据绑定、状态管理和异步操作的处理。以下是几种常见的方法: 使用计算属性(Computed Properties) 计算属性基于响应式依赖进…

实现 vue 框架

实现 vue 框架

Vue 框架的基本实现 Vue 是一个渐进式 JavaScript 框架,用于构建用户界面。以下是实现 Vue 框架的基本步骤和核心概念。 核心概念 响应式数据绑定 Vue 的核心特性之一是响应式…

vue实现切换

vue实现切换

Vue 实现切换功能的方法 在 Vue 中实现切换功能可以通过多种方式实现,以下是一些常见的方法: 使用 v-if 和 v-else 指令 通过条件渲染实现切换功能,适用于简单的显示/隐藏场景…

vue实现表白

vue实现表白

Vue 实现表白页面 使用 Vue 可以快速创建一个动态、交互式的表白页面。以下是一个简单的实现方案: 基础结构 创建一个 Vue 项目或单文件组件,包含以下核心部分: <template&…

vue实现开关

vue实现开关

Vue 实现开关组件的方法 使用原生HTML和Vue数据绑定 通过v-model绑定复选框的checked状态,结合CSS样式实现开关效果: <template> <label…