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

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

如何移除通過(guò)$on方法動(dòng)態(tài)添加的事件監(jiān)聽(tīng)器?

發(fā)布時(shí)間:2025-11-08 文章來(lái)源:本站  瀏覽次數(shù):428
在 Vue 中,通過(guò) $on 方法動(dòng)態(tài)添加的事件監(jiān)聽(tīng)器,需要使用 $off 方法來(lái)移除。核心原則是:$off 的參數(shù)必須與 $on 完全匹配(事件名和回調(diào)函數(shù)引用一致)。以下是具體實(shí)現(xiàn)方法及場(chǎng)景示例:

一、核心用法:$off 移除特定事件監(jiān)聽(tīng)器

$on 用于綁定事件,$off 用于移除,兩者參數(shù)對(duì)應(yīng)關(guān)系如下:
$on 綁定方式 $off 移除方式 說(shuō)明
$on('eventName', handler) $off('eventName', handler) 移除指定事件的指定回調(diào)
$on('eventName', handler) $off('eventName') 移除指定事件的所有回調(diào)
$on('eventName', handler) $off() 移除組件所有事件的所有回調(diào)

二、具體場(chǎng)景示例

1. 移除指定事件的指定回調(diào)函數(shù)

這是常用的場(chǎng)景,需確保 $off 的回調(diào)函數(shù)與 $on 引用一致(不能用匿名函數(shù))。
vue
<script>
export default {
  created() {
    // 1. 定義具名回調(diào)函數(shù)(確保引用唯一)
    this.handleClick = () => {
      console.log('自定義事件被觸發(fā)');
    };

    // 2. 用 $on 綁定事件
    this.$on('custom-click', this.handleClick);
  },
  mounted() {
    // 模擬事件觸發(fā)
    this.$emit('custom-click'); // 輸出:自定義事件被觸發(fā)
  },
  beforeDestroy() {
    // 3. 用 $off 移除指定事件的指定回調(diào)(關(guān)鍵步驟)
    this.$off('custom-click', this.handleClick);
  }
};
</script>

2. 移除指定事件的所有回調(diào)函數(shù)

若一個(gè)事件綁定了多個(gè)回調(diào),可通過(guò) $off('eventName') 一次性移除所有。
vue
<script>
export default {
  created() {
    // 綁定多個(gè)回調(diào)到同一事件
    this.$on('custom-event', () => console.log('回調(diào)1'));
    this.$on('custom-event', () => console.log('回調(diào)2'));
  },
  mounted() {
    this.$emit('custom-event'); // 輸出:回調(diào)1、回調(diào)2
  },
  beforeDestroy() {
    // 移除 custom-event 的所有回調(diào)
    this.$off('custom-event');
  }
};
</script>

3. 移除組件的所有事件監(jiān)聽(tīng)器

若需清空組件上所有通過(guò) $on 綁定的事件,直接調(diào)用 $off() 即可(無(wú)參數(shù))。
vue
<script>
export default {
  created() {
    this.$on('event1', () => {});
    this.$on('event2', () => {});
  },
  beforeDestroy() {
    // 移除所有事件的所有回調(diào)
    this.$off();
  }
};
</script>

4. 在子組件中移除父組件綁定的事件

父組件通過(guò) v-on 綁定子組件的自定義事件,本質(zhì)是子組件內(nèi)部通過(guò) $on 處理,子組件可在卸載時(shí)用 $off 移除。
vue
<!-- 子組件 Child.vue -->
<script>
export default {
  created() {
    // 父組件綁定的 @child-event 會(huì)被 Vue 內(nèi)部轉(zhuǎn)為 $on
    // 子組件可通過(guò) $off 移除(需知道事件名和回調(diào))
    this.$on('child-event', this.handleChildEvent);
  },
  methods: {
    handleChildEvent() {
      console.log('子組件事件觸發(fā)');
    }
  },
  beforeDestroy() {
    this.$off('child-event', this.handleChildEvent);
  }
};
</script>

三、避坑指南

1. 匿名函數(shù)無(wú)法移除

$on 若使用匿名函數(shù)綁定,$off 無(wú)法找到相同引用,導(dǎo)致移除失敗。
javascript
運(yùn)行
// 錯(cuò)誤示例:匿名函數(shù)無(wú)法移除
this.$on('custom-event', () => console.log('匿名回調(diào)'));
this.$off('custom-event', () => console.log('匿名回調(diào)')); // 無(wú)效,引用不同

// 正確示例:用具名函數(shù)
this.handleEvent = () => console.log('具名回調(diào)');
this.$on('custom-event', this.handleEvent);
this.$off('custom-event', this.handleEvent); // 有效

2. $off 參數(shù)必須與 $on 完全匹配

若 $on 綁定了多個(gè)回調(diào),$off('eventName', handler) 僅移除指定回調(diào),其他回調(diào)仍有效;若需移除所有,需用 $off('eventName')

3. 組件卸載時(shí)自動(dòng)清理

Vue 組件卸載時(shí),會(huì)自動(dòng)移除所有通過(guò) $on 綁定的事件監(jiān)聽(tīng)器,因此若僅需在組件銷毀時(shí)移除,無(wú)需手動(dòng)調(diào)用 $off。但如果組件未銷毀(如隱藏而非銷毀),則需手動(dòng)移除。

4. 注意事件作用域

$on / $off 綁定的是組件實(shí)例的事件,而非 DOM 事件。若需移除 DOM 事件,仍需用 removeEventListener

總結(jié)

移除 $on 動(dòng)態(tài)添加的事件監(jiān)聽(tīng)器,核心是:
  1. 用 $off 方法,參數(shù)與 $on 完全匹配(事件名 + 回調(diào)函數(shù)引用);
  2. 避免使用匿名函數(shù),改用具名函數(shù)確保引用一致;
  3. 組件卸載時(shí) Vue 會(huì)自動(dòng)清理,無(wú)需手動(dòng) $off(除非組件未銷毀);
  4. 區(qū)分組件實(shí)例事件($on / $off)和 DOM 事件(addEventListener / removeEventListener)。

上一條:如何移除組件的所有事件監(jiān)...

下一條:網(wǎng)站的規(guī)劃能夠從以下4點(diǎn)...

亚洲中文字幕不卡的-999视频国产精品-人妻少妇精品久久一区二区三区免费-欧美日韩精品久久久 | 久热在线中文免费视频-少妇啪啪av一区二区三区-高清一区二区三区四区免费视频-人妻少妇精品中文字幕专区视频 | 99精品久久99久久久久胖女人-国产精品99久久久久久女同女-精品久久久久乱色熟女影视-日韩视频 亚洲 | 成人午夜电影在线观看网站-亚洲成人精品蜜桃-国产av一区二区三区…-日韩一级av在线免费播放 | 日韩av中文一区二区三区-美女一区在线视频-黑人性视频多人欧美-精品人妻一区二区三区含 | 91精品国产综合久久久密臀九色-国产又粗又黄又色又爽视频-欧美高清视频一区二区三区三洲-色婷婷亚洲婷婷七 | 六月婷婷综合67194-国产精品毛片极品久久-日韩成年人大片-国产又粗又爽又猛又大的动漫片 | 久久精品视频3-国产亚洲一区二区三区在线观看-97国产一区二区三区-久久久久99久久久久 | 国产99这里只有精品99-国产91人妻一区二-97精品国产aⅴ7777-国产成年人视频91 | 2020免费中文字幕在线观看-好看不卡的中文字幕-蜜桃视频一区二区三区四区av-91人人妻操人妻 | 国产成人啪精品视频免费网站下载-91精品少妇高潮一区-中文字幕人妻一区二区三区在线-久久精品国产亚洲av桃花av | 国产日韩视频一区二区-人人妻人人妻人人人-成人黄色中文字幕电影-99九九视频免费观看 | 91亚洲欧美福利在线观看-日韩久久人妻在线-xyx性爽久久久亚洲熟妇熟女-久久av看大片 | 久久精品在线视频播放-蜜桃中文字幕二区-99久久无色码中文字幕人妻-久久精品久久久久久婷婷日 | 欧美色欧美亚洲另类二区不卡-国产免费自拍色视频-日本妻子中文字幕-人妻精品久久久久中文字幕一 女同另类中文字幕-久久九九99这里只有精品-日韩欧美激情不卡-亚洲天堂操操操操操操 | 欧美日韩一区二区三区视频播放-国产一区二区三区综合-久久黄色精品内射胖女人-999色在线视频 | 日韩成人精品在线免费观看-韩日精品 中文字幕-日本中文字幕人妻在线观看-亚洲av色综成人网77777 国产区一区二区三在线-欧美日本亚洲视频二-欧洲欧美一区二区三区-av日韩视频在线观看 | 日本中文字幕天天干-久久久久艹艹视频-深爱六月婷婷狠狠爱-制服中文人妻字幕 | 国产日本久久中文字幕-中文字幕成人免费观看-91久久精品国产原创91久久-99精品视频在线观看视频在线 | 久久草视频在线播放-日韩在线亚洲一区-久久精品国产77777蜜臀-最新中文中文字幕 | 开心五月六月丁香伊人-国外黄色网在线观看-亚洲精品av日韩-久久在线爱爱视频 | 性欧美极品xxxx欧美一区二区-伊人色综合久久天天看-久久婷婷综合五月天啪网-久久久久国精品产熟女久色 | 99成人在线观看视频-欧美精产国品一区三区-日韩亚洲精品在线-av久久色中文字幕 | 久久国产更新懂色蜜臀-亚洲精品国产成人精品网站-欧美一区两区三区久久-人人妻人人玩操人人 | 欧美日韩免费一区二区三区视频-在线观看91免费视频-狠狠人妻久久久久综合亚洲精品-日韩最新三级视频 | 国内精品久久在线观看-精品中文久久久久久-北条麻妃 av 中文字幕-欧美成人精品人妻久久久久久 | 18禁www久久久网站-97超碰亚洲xxhd-91久久久久国产一区二区欧美-在线日韩欧美页 | 中文字幕色桃子-亚洲天堂国产日韩在线-亚洲精品乱码久久久久久按摩1-av中文字幕网免费观看 | 精品综合久久久久久99粉芽-国产福利亚洲天堂91-丰满肥臀大屁股熟妇呻吟-亚洲欧美日韩综合在线尤物 | 中文字幕人妻在线成人-久久色国产av-久久精品国产亚洲av麻豆软件-91麻豆精品国产福利在线观看 | 久久国产东京热精品-亚洲天堂中文在线观看-97超碰熟女人妻-欧美日韩精品卡一卡二 | 婷婷激情五月天在线视频-久久精品国产亚洲av高清yw-2022天天操夜夜-成年午夜精品久久久久久久 | 亚洲天堂中文字幕悠悠-久久夜久久久久-久久久久亚洲av毛片大全有-日韩欧美国产免费大片 | 亚洲欧洲一区二区三区中文字幕-一区二区三区蜜桃臀-91国偷自产一区二区三区三区-久久久久久熟妇热舞 | 日韩午夜av一2区3区-日韩午夜高清福利老司机-日韩亚洲精品视频-亚洲成人av卡一卡二 | 亚洲欧洲一区二区三区中文字幕-一区二区三区蜜桃臀-91国偷自产一区二区三区三区-久久久久久熟妇热舞 | 蜜臀久久精品国产综合-欧美日韩一级高清黄片-日韩一级免费啪啪啪-91精品久久久久久久在线观看 | 久久草99精品久久-日韩精品在线成人观看-麻豆精品视频网站在线观看-97久久人妻一区二区三 | 亚洲第一狼色综合区小说综合-国产亚洲精品久久久久-成人免费视频国产免费麻豆下-97乱中文字幕在线 | 人妻julia丝袜中文字幕-日韩黄片中文字幕免费看片-99久久久久久精品国产-国产69久久久久9999天堂 | 久久久人妻碰碰碰禁片-久热99re视频在线-91视视频在线观看入口直接观看-国产精品久久久久久五月天 |