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

歡迎來到合肥浪訊網(wǎng)絡(luò)科技有限公司官網(wǎng)
  咨詢服務(wù)熱線:400-099-8848

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

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

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

1. 組件內(nèi)部移除自身的 v-on 事件

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

示例:通過 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. 移除組件內(nèi) 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),需要調(diào)用庫自身的方法來移除特定事件。
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)組件 實現(xiàn)。

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

總結(jié)

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

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

下一條:合肥網(wǎng)站建造之網(wǎng)站建造加...

日韩美女一区二免费视频-中文字幕日韩人妻在线视频凹凸-日韩在线av中文字幕-999视频精品全部 | 久久伊人国产视频-精品人妻久久久久久一区二区三区-97久久久精品综合88久久-2019中文字幕免费在线观看 | 2012中文字幕在线视频免费-久久99爱免费视频视频-成人欧美一区二区三区男男-九九热免费精彩视频 国产人妻一区二区三区网站-人妻激情偷一区二区三区-国产一区二区三区三区在线观看-丁香花啪啪啪啪啪啪啪五月天网站 | 97久久香蕉国产熟女线看-日韩成人av在线二区-久久主人久久综合久久综合艹尼玛-10国产精品久久久久久 | 欧美日韩成年人大片-丰满少妇一区二区三区丰满人妻-日韩avbd在线观看-亚洲欧美日韩另类一区二区 日韩美一级片视频-免费日韩欧美中文字幕av-婷婷激情四射综合网-日韩爱视频在线观看 | 国产自产一区二区三区视频-五月色夜婷婷丁香琪琪-亚洲国产精品av999-婷婷综合最新地址 | 中文字幕熟女裸体激情-av成人天堂在线电影-久久久久9999免费-日韩不卡精品在线观看 | 国产成人一区二区三区欧美日韩成人-91婷婷久久激情-日日夜夜精品视频综合网-91精品国产91久久久久蜜臀 | 成人午夜电影在线观看网站-亚洲成人精品蜜桃-国产av一区二区三区…-日韩一级av在线免费播放 | 国产精品99久久久久久jj-久久精品高潮999久久久-91精品国产乱码久久蜜臀-2024中文字幕在线观看视频 | 国产麻豆成人av精品网站-亚洲欧美日本韩国乱片-97久久碰人妻一区二区-日韩精品中文字幕在线视频 神马午夜久久久av-中文日韩av在线免费观看-日韩欧美一级一区二区-国产激情在线视频免费 | 五月综合婷婷一区二区-亚洲五月天av在线播放-日韩在线欧美一区二区三区-欧美日韩视频中文字幕 | 超碰在线视频中文字幕-日韩av成人精品日韩在线播放-日韩在线观看av网站-日韩三级淫色网 | 综合激情中文字幕-久热九色在线观看视频-99精品视频在线免费看-九九99在线精品视频 | 和黑人老外交换娇妻-日韩精品网址你懂的-成人免费av大片茄子-欧美精品麻豆久久 | 国产老熟女视频老熟女一区二区-中文字幕欧美日韩熟女-人妻日韩黑人欧美一区二区-国产熟女一区二区三区av | 超碰人妻黑人中文版-18岁成年人黄色片-日韩在线一区第一页-91精品国产高清久久久久久久久 | 中文人妻熟妇精品乱又伧天美传媒-五月婷,六月丁香-久99久精品视频免费观看v-国产又粗又长又黄又嫩 | 国产二区三区四区在线-内射颜射无套在线观看-亚洲中文字幕激情五月婷婷-91久久国产久久国产网址 国产91精品免费看-97精品国产91久久-91久久国产精品综合-91精品欧美久久久久激情视频 | 91麻豆蜜桃在线观看-2021年精品国产福利在线-丁香六月五月婷婷综合-尤物精品在线一区 | 国产又大又长又粗又硬又黄又爽-五月天丁香花开网久久-高清不卡的一区二区三区视频-国产一区二区三区 中文字幕 | 9久精品久久综合久久超碰-久99精品免费视频-91久久精品国产成人久久-欧美久久久久久久久系列 | 日韩欧美一区二区成人舌头-久久激情亚洲av-久久久久久91亚洲精品中文字幕-狠狠操天天干天天操 | 国产又粗又硬又大又爽又黄的免费视频-91插插插免费播-青青久久久艹热视频-日韩三级在线观看免费网站 | 丰满熟女一区二区三区四区黑色的-成人91免费在线观看-亚洲国产av一级大全-久久久男人的性感天堂 99精品久久99久久久久一-日韩三级a视频在线观看-国产精品99精品免费视频-日日夜夜有免费视频观看 | 91精品综合久久熟女-久久综合激的五月天-欧美国产日韩在线不卡-久久中文字幕综合网 | 国产99这里只有精品99-国产91人妻一区二-97精品国产aⅴ7777-国产成年人视频91 | 中文字幕 日韩精品 人妻-日韩欧美人妻中文字幕在线-久久好看的中文字幕-亚洲国产成人精品女人久久久孕妇 | 国产亚洲3p一区二区三区-激情综合网,激情五月天四射-大香蕉久久久久在线伊人-巨乳姐姐诱惑中文字幕 | 99精品视频一区二区三-射射爱天天射天天干天天操-麻豆精品一级片在线观看-亚洲制服人妻另类小说 超碰av中文在线-国产青青操视频在线-在线观看日韩午夜av-精品丰满人妻无套内射 | 天天干天天操天天射精-超碰人人看人人做人人射-久久精品女人18国产水多毛片-99精品国产欧美日韩 日韩内射电影区-日韩熟女三区二区一区-国产精品美女久久久久av麻豆-国产精产国品一二三在观看 | 国产精品麻豆xxx-2019中文字幕在线视频-成人国产av精品麻豆网-欧美亚洲一区二区三区婷婷 | 日韩中文字幕免费的视频在线-日韩亚洲主播在线-久久青青看视频-国内自拍在线小视频 | 日本少妇人妻久久久-蜜桃视频在线一区二区三区-亚洲精品色视频在线-亚洲人成伊人成综合网99精品 激情综合色综合久久丁香-精品久久久久女人18-av久久伊人精品中文字幕-久久久久人妻一区二区三区vr2 | 国产精精品在线资源-91在伦在色在线播放7777-蜜臀久久99精品久久久久久安男-91中文字幕免费观看 加勒比中文人妻字幕在线视频-国产一区二区三区福利视频在线观看-亚洲欧美日韩丝袜美腿第一页-日韩欧美二区在线播放 | 久久青青草原av国产-国产熟女一区二区三区五月婷小说-五月婷婷综合激情网-国产91精品久久久久久一级 | 日韩精品人妻26uuuu-欧美人妻cuckoid-色婷婷,婷婷色-伊人激情综合中文字幕 | 亚洲+小说+欧美+激情+另类-成人欧美一区二区三区黑人免费-精品视频999-国产精品国产三级国av在线观看 | 亚洲美女做色爱禁图片-色综合91久久精品中文字幕素股-成人中文字幕免费视频-国产精久久久久久网站 | 中文字幕日韩一二区-精品人妻一区二区区-欧美 日韩 亚洲 在线-久久六热免费观看 | 精品久久久久久亚洲中文字幕-97久久香蕉氩炫呖-久久精品人妻人人澡-久久五十岁少妇精品 |