当前位置:首页 > VUE

vue点击实现冒泡

2026-03-09 20:55:19VUE

Vue 中实现点击冒泡的方法

在 Vue 中,事件默认会冒泡,但有时可能需要手动控制冒泡行为。以下是几种实现点击冒泡的方式:

使用 .native 修饰符

对于原生 DOM 事件,可以直接使用 .native 修饰符监听原生事件,确保事件冒泡到父组件。

<template>
  <div @click.native="handleParentClick">
    <child-component></child-component>
  </div>
</template>

显式调用 $emit

在子组件中通过 $emit 触发事件,父组件监听该事件实现冒泡效果。

<!-- 子组件 -->
<template>
  <div @click="handleClick">
    <button>点击我</button>
  </div>
</template>

<script>
export default {
  methods: {
    handleClick() {
      this.$emit('click');
    }
  }
}
</script>

<!-- 父组件 -->
<template>
  <div @click="handleParentClick">
    <child-component @click="handleChildClick"></child-component>
  </div>
</template>

使用事件修饰符

Vue 提供了 .stop.prevent 等修饰符控制事件冒泡。若需允许冒泡,无需添加修饰符即可默认冒泡。

<template>
  <div @click="handleParentClick">
    <button @click="handleChildClick">点击我</button>
  </div>
</template>

手动触发父组件事件

在子组件中通过 $parent$root 直接调用父组件的方法。

vue点击实现冒泡

<!-- 子组件 -->
<template>
  <div @click="handleClick">
    <button>点击我</button>
  </div>
</template>

<script>
export default {
  methods: {
    handleClick() {
      this.$parent.handleParentClick();
    }
  }
}
</script>

注意事项

  • 默认情况下,Vue 事件会冒泡,无需额外处理。
  • 若事件被 .stop 修饰符阻止,需移除该修饰符或手动触发上层事件。
  • 避免过度依赖 $parent$root,优先使用 $emit 实现组件通信。

标签: vue
分享给朋友:

相关文章

vue实现store

vue实现store

Vue 实现 Store 在 Vue 中,可以通过 Vuex 或 Pinia 实现全局状态管理(Store)。以下是两种主流方案的实现方法。 使用 Vuex 实现 Store Vuex 是 Vue…

vue实现triger

vue实现triger

在Vue中实现触发器(trigger)功能通常涉及自定义事件或DOM事件触发。以下是几种常见场景的实现方法: 自定义事件触发 通过$emit方法触发父组件中监听的自定义事件: // 子组件 thi…

vue实现muli

vue实现muli

Vue 实现多语言(i18n)支持 在 Vue 项目中实现多语言(i18n)功能,通常使用 vue-i18n 插件。以下是具体实现步骤: 安装 vue-i18n npm install vue-i…

vue架构实现

vue架构实现

Vue 架构实现核心方案 Vue.js 的架构实现通常围绕模块化、组件化和状态管理展开。以下为常见实现方案: 基于单文件组件(SFC)的模块化 通过 .vue 文件组织模板、脚本和样式: <…

vue实现盖章

vue实现盖章

Vue 实现盖章功能 在Vue中实现盖章功能通常涉及前端UI交互,通过Canvas或SVG绘制印章,并允许用户拖拽或点击放置印章。以下是具体实现方法: 使用Canvas绘制印章 通过HTML5的Ca…

vue怎么实现

vue怎么实现

Vue 实现方法 Vue 是一个流行的前端框架,用于构建用户界面。以下是几种常见的实现方法: 数据绑定 使用 v-model 指令实现双向数据绑定,适用于表单输入元素。 <input v-m…