国产女主播成人av-亚洲国产精品黑人久久久-欧美日韩一区二区三区gif-91综合久久噜久久-国产日韩欧美在线观看大片-国产一区二区三区御姐-开心激情婷婷久久视频-亚洲精品日韩在线观看视频网站-亚洲av欧美av日韩av,日本色一区二区三区,国产亚洲成性色av人片在线观,国产91熟女高潮一区二区抖

歡迎來到合肥浪訊網絡科技有限公司官網
  咨詢服務熱線:400-099-8848

在Vue中,如何移除一個組件的特定事件監(jiān)聽器?

發(fā)布時間:2025-11-08 文章來源:本站  瀏覽次數:502
在 Vue 中移除一個組件的特定事件監(jiān)聽器,核心是 “找到事件綁定的源,確保移除時的參數與綁定完全一致”。以下是針對不同場景的具體實現方法:

一、移除通過 v-on / @ 綁定的事件

1. 組件內部移除自身的 v-on 事件

通過 v-on 綁定的事件,Vue 會自動管理其生命周期,組件卸載時會自動移除,無需手動處理。
如果需要在組件內部主動移除某個 v-on 事件,可以通過 條件渲染 或 動態(tài)組件 實現。

示例:通過 v-if 重新渲染組件

vue
<template>
  <div>
    <button @click="toggleEventListener">
      {{ hasEventListener ? '移除點擊事件' : '添加點擊事件' }}
    </button>
    <ChildComponent v-if="showChild" @click="handleChildClick" />
  </div>
</template>

<script setup>
import { ref } from 'vue';
import ChildComponent from './ChildComponent.vue';

const showChild = ref(true);
const hasEventListener = ref(true);

const handleChildClick = () => {
  console.log('子組件被點擊');
};

const toggleEventListener = () => {
  hasEventListener.value = !hasEventListener.value;
  // 通過銷毀并重建子組件來移除事件
  showChild.value = false;
  setTimeout(() => {
    showChild.value = true;
  }, 0);
};
</script>

二、移除通過 addEventListener 手動綁定的事件

如果事件是通過原生 addEventListener 手動綁定的,需要在組件卸載時通過 removeEventListener 手動移除。

1. 移除組件內 DOM 元素的特定事件

vue
<script setup>
import { onMounted, onUnmounted, ref } from 'vue';

const myButton = ref(null);

function handleClick() {
  console.log('按鈕被點擊');
}

onMounted(() => {
  myButton.value.addEventListener('click', handleClick);
});

onUnmounted(() => {
  // 移除特定的 click 事件
  myButton.value.removeEventListener('click', handleClick);
});
</script>

2. 移除全局特定事件

vue
<script setup>
import { onMounted, onUnmounted } from 'vue';

function handleResize() {
  console.log('窗口大小變化');
}

onMounted(() => {
  window.addEventListener('resize', handleResize);
});

onUnmounted(() => {
  // 移除特定的 resize 事件
  window.removeEventListener('resize', handleResize);
});
</script>

三、移除第三方庫綁定的特定事件

如果組件使用了第三方庫(如 ECharts、Mapbox),需要調用庫自身的方法來移除特定事件。
vue
<script setup>
import { onMounted, onUnmounted, ref } from 'vue';
import * as echarts from 'echarts';

const chartRef = ref(null);
let myChart = null;

function handleChartClick(params) {
  console.log('圖表被點擊', params);
}

onMounted(() => {
  myChart = echarts.init(chartRef.value);
  // 綁定特定事件
  myChart.on('click', handleChartClick);
});

onUnmounted(() => {
  // 移除特定的 click 事件
  myChart.off('click', handleChartClick);
  myChart.dispose();
});
</script>

四、移除子組件觸發(fā)的特定事件

如果父組件監(jiān)聽了子組件的自定義事件,想要移除這個監(jiān)聽,可以通過 條件渲染 或 動態(tài)組件 實現。

示例:父組件移除對子組件事件的監(jiān)聽

vue
<!-- 父組件 -->
<template>
  <div>
    <button @click="toggleChild">
      {{ showChild ? '銷毀子組件(移除事件)' : '創(chuàng)建子組件(添加事件)' }}
    </button>
    <ChildComponent 
      v-if="showChild" 
      @custom-event="handleCustomEvent" 
    />
  </div>
</template>

<script setup>
import { ref } from 'vue';
import ChildComponent from './ChildComponent.vue';

const showChild = ref(true);

const handleCustomEvent = (data) => {
  console.log('收到子組件事件:', data);
};

const toggleChild = () => {
  showChild.value = !showChild.value;
};
</script>

五、避坑指南

  1. 確;卣{函數引用一致
    • 錯誤示例:
      javascript
      運行
      // 綁定匿名函數
      el.addEventListener('click', () => console.log('點擊'));
      // 無法移除,因為每次創(chuàng)建的匿名函數引用不同
      el.removeEventListener('click', () => console.log('點擊'));
      
    • 正確示例:
      javascript
      運行
      function handleClick() {
        console.log('點擊');
      }
      el.addEventListener('click', handleClick);
      el.removeEventListener('click', handleClick);
      
  2. 事件捕獲階段參數匹配
    javascript
    運行
    // 綁定捕獲階段事件
    el.addEventListener('click', handleClick, true);
    // 移除時必須傳入第三個參數 true
    el.removeEventListener('click', handleClick, true);
    
  3. 第三方庫事件移除
    • 許多庫提供了專門的事件移除方法,例如:
      • ECharts: chart.off('eventName', handler)
      • Vue 自定義事件:組件銷毀時自動移除
      • DOM 事件: removeEventListener

總結

  1. v-on / @ 事件:Vue 自動管理,組件卸載時自動移除。
  2. addEventListener 事件:使用 removeEventListener 手動移除,確保參數一致。
  3. 第三方庫事件:調用庫的 off 或類似方法移除。
  4. 子組件事件:通過 v-if 銷毀子組件來移除事件監(jiān)聽。

上一條:如何移除通過$emit觸...

下一條:合肥網站建造之網站建造加...

18禁国产麻豆精品久久久久久-超碰人妻av狠狠干-色婷婷综合久久久久久中文-国产av一区二区青青草原 | 一本色道久久一区二区-日韩精品久久久久久-狠狠综合久久88亚洲-国产精品va久久久 | 激情综合色综合久久丁香-精品久久久久女人18-av久久伊人精品中文字幕-久久久久人妻一区二区三区vr2 | 天天操夜夜操狠狠久久-人妻丰满熟妇a v-婷婷中文字幕综合久久-久久国产精品99国产精品72 | 精品一区二区三区四区五区在线观看-亚洲欧美日韩成人在线激情网-丰满人妻 中文字幕-亚洲五月综合在线婷婷 | 蜜桃婷婷狠狠久久综合9色-日韩中文字幕人妻一区二-日韩欧美老色头-精品国产999久久 | 国产熟女高潮与激情-天堂午夜偷拍小视频-精品国产乱码久久久久久免费-欧美日韩一区二区另类 | av中文字幕熟妇-久久久久久亚洲精品蜜桃-91夜夜蜜桃臀一区二区-精品一区二区三区不卡视频 | 日韩和亚洲的视频-久久国产剧情素人精品视频-91精品久久久久久久不-久久精品999国产 | 人妻精品中文字幕专区-超碰人妻在线97-国产中文字幕内射-91久久国产综合久久网 | 懂色av懂色av粉嫩av分享吧-中文字幕在线激情视频-久久99精品国产91久久来源-avtt中文字幕手机版 天天想太多脑袋感觉很紧绷怎么办-99久久国产日韩欧美-日韩欧美一区二区在线-麻烦视频一区二区三区 | 日韩和亚洲的视频-久久国产剧情素人精品视频-91精品久久久久久久不-久久精品999国产 | 精品人妻人妻人一区二区有限公司-精品午夜中文字幕熟女人妻在线-不卡视频一区二区免费看-69精品人妻久久久久久久久久久 | 国产欧美日韩亚洲精选在线播-2023国产精品久久久精品双-久久99久久久久久久久久久-成人自拍视频在线免费播放 | 久久疯狂做爰流白浆xxxⅹ高潮-久久精品三级伦理日韩精品-日韩成人免费电影网址-婷婷综合在线视频免费 | 久久99国产精品精品国产-丰满肥臀人妻一区二区三区-国产麻豆免费在线视频-麻豆秘欧美在线观看 | 中文字幕在线观看日韩av-亚洲欧洲日本色噜噜-日本久久这里有精品-久久综合久色综合 | 激情六月天亚洲婷婷-国产精品麻豆午夜在线-国产成人综合精品99久久久久-成人精品国产亚洲av久久 国产又大又长又粗又硬视频-青草精品视频在线中文字幕-麻豆综合视频在线观看-99热这里只有精品9999 | 中日韩av在线播放-美女短片在线视频福利资源-久久久久久人妻中文-国产又粗又猛又色又黄免费视频 久久久久久亚洲熟女-91国产高清久久久久久-亚洲伊人久久大香线蕉av-精品久久久久久18禁 | 日韩亚洲欧美偷拍-国产免费不卡一区二区三区-丰满精品人妻一区三区-av加勒比一区二区 | 国产人妻少妇一区二区三区-91精品国产综合久久久蜜臀九-欧美国产视频一区二区三区-av在线中文字幕国产 | 日韩av天堂一区二区三区在线-久久99精品中的精品-色综合久久88综合天天天-久久久久久久熟妇 | 日韩最新在线观看视频-91人妻中文在线一区二区三区-国模福利视频在线观看-国产精品va尤物在线观看 | 国产乱码一区二区三区四区-国产 日韩午夜-99久久人妻精品系列-亚洲深喉口爆吞精视频 | 中日韩av在线播放-美女短片在线视频福利资源-久久久久久人妻中文-国产又粗又猛又色又黄免费视频 久久久久久亚洲熟女-91国产高清久久久久久-亚洲伊人久久大香线蕉av-精品久久久久久18禁 | 成人时间停止器在线观看av-国产成人 综合 亚洲-中文字幕日韩人妻乱码-国模精品一区二区三区视频 91在线观免费观看-日韩欧美人妻中文字幕影院-av在线播放青青草-成人av高清在线区三区二区一 | 八戒八戒精品一区二区三区-久久97精品久久久久久久蜜桃-国产麻豆综合精品视频-久久久久亚洲av成人篇小说 | 色婷婷日韩一区二区-亚洲精品国产成人av麻豆-中文字幕人妻丝袜成熟-欧美亚洲一区二区三区久久久 日韩欧美国产制服丝袜-18禁国产91精品久久久久久-久久综合色鬼色88-国产'av一区二区三区 | 久久国产3 p精品-久久婷婷亚洲伊人-蜜臀av我不卡-久久精品少妇一区二区 | 91熟女精品国产-人妻中文字幕视频-开心五月激情综合婷婷-激情五月天中文字幕色 | 麻豆玩弄japan白嫩少妇hd-91旷世极品尤物 系列-日韩黄色中文字幕电影网站-国产成人亚洲综合亚洲 久久久熟妇色综合激情-天天爽天天操天天做天天干-91麻豆精品国产理论片在线观看-久久热这里都是精品 | 亚洲av嫩草极品在线观看-91久久人人夜色一区二区精品-美女视频图片一区二区三区-都市激情 校园春色 中文字幕 | 亚洲一区二区三区四区五月天-久久人人添人人-超碰日韩97在线-欧美另类少妇熟妇 | 人人添人人爽欧美一区二区-六月激情五月激情开心综合-国产蜜臀一区二区三区在线观看-日韩免费激情在线视频 | 狠狠操夜夜操天天干-国产麻豆精品出品-超碰免费人妻97-久久免费手机在线观看 | 超碰人97在线观看-18禁看黄免费亚洲-伊人色综合久久天天伊人婷-亚洲乱女色熟一区二区三区 | 999视频高清免费-99热这里只有精品免费6-久久6在线观看视频-久久h视频在线观看 | 99人妻精品一区二区-亚洲欧美日韩精品中文字幕91-精品亚洲成α人7777在线观看-av日韩中文在线观看 | 久久久极品一区二区-99精品人妻一区二区三蜜桃-亚洲av成人波多野一区二区三区-中文字幕人妻中出视频 | 欧美日韩成年人大片-丰满少妇一区二区三区丰满人妻-日韩avbd在线观看-亚洲欧美日韩另类一区二区 日韩美一级片视频-免费日韩欧美中文字幕av-婷婷激情四射综合网-日韩爱视频在线观看 | 精品99久久人人妻-2021最新天码中文字幕-久久人妻视频免费观看-日韩精品人人人 |