当前位置:首页 > VUE

vue实现事件监听

2026-02-17 02:49:02VUE

Vue 事件监听实现方法

Vue 提供了多种方式实现事件监听,以下是常见方法:

v-on 指令 使用 v-on 指令绑定事件监听器,语法为 v-on:事件名="处理方法" 或简写为 @事件名="处理方法"

<button v-on:click="handleClick">点击</button>
<button @click="handleClick">简写点击</button>

methods 中定义处理方法 在 Vue 实例的 methods 选项中定义事件处理方法:

methods: {
  handleClick(event) {
    console.log('按钮被点击', event)
  }
}

内联处理器 可以直接在模板中使用 JavaScript 表达式:

vue实现事件监听

<button @click="count++">增加计数</button>

事件修饰符 Vue 提供事件修饰符实现常见 DOM 事件处理需求:

<!-- 阻止默认行为 -->
<form @submit.prevent="onSubmit"></form>

<!-- 阻止事件冒泡 -->
<div @click.stop="doThis"></div>

<!-- 事件只触发一次 -->
<button @click.once="doThis"></button>

按键修饰符 监听特定按键事件:

vue实现事件监听

<input @keyup.enter="submit" />
<input @keyup.13="submit" /> <!-- 使用 keyCode -->

自定义事件 子组件通过 $emit 触发事件,父组件通过 v-on 监听:

// 子组件
this.$emit('custom-event', payload)

// 父组件
<child-component @custom-event="handleCustomEvent"></child-component>

生命周期钩子 在组件生命周期中监听内部事件:

created() {
  window.addEventListener('resize', this.handleResize)
},
beforeDestroy() {
  window.removeEventListener('resize', this.handleResize)
}

事件总线 对于非父子组件通信,可以使用事件总线:

// 创建事件总线
const EventBus = new Vue()

// 发送事件
EventBus.$emit('event-name', data)

// 接收事件
EventBus.$on('event-name', data => {
  // 处理数据
})

注意事项

  • 组件销毁时应移除全局事件监听避免内存泄漏
  • 事件处理函数应尽可能简单,复杂逻辑建议提取到方法中
  • 自定义事件名建议使用 kebab-case 命名方式
  • 避免在模板中编写复杂逻辑,保持模板简洁

标签: 事件vue
分享给朋友:

相关文章

vue实现打字机

vue实现打字机

Vue实现打字机效果 在Vue中实现打字机效果可以通过动态更新文本内容并添加延迟来实现。以下是几种常见的实现方法: 使用setInterval实现 <template> <di…

vue实现下拉框删除

vue实现下拉框删除

Vue 实现下拉框删除功能 在Vue中实现下拉框的删除功能通常涉及以下步骤: 数据绑定与渲染 在Vue组件中定义数据数组用于存储下拉框选项: data() { return { op…

vue实现递归

vue实现递归

Vue 实现递归组件的方法 在 Vue 中实现递归组件通常用于处理树形结构数据(如菜单、评论列表、文件目录等)。以下是具体实现方法: 定义递归组件 通过 name 选项让组件可以递归调用自身:…

vue实现报表

vue实现报表

vue实现报表的方法 使用Vue实现报表通常需要结合图表库或表格组件。以下是几种常见方法: 使用ECharts 安装ECharts库: npm install echarts vue-echart…

vue实现级联

vue实现级联

Vue 实现级联选择器的方法 级联选择器(Cascader)是常见的表单组件,用于处理多层级联动数据选择(如省市区选择)。以下是几种实现方式: 基于 Element UI 的 el-cascade…

vue实现引导

vue实现引导

Vue 实现引导功能的方法 使用第三方库 推荐使用 driver.js 或 intro.js 这类专门为 Vue 设计的引导库。这些库提供了完整的 API 和样式,能够快速实现引导功能。 安装 dr…