国产女主播成人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)...

国产日本欧美在线观看-91麻豆国产极品在线观看-欧美日韩激情在线一区-日韩国产在线观看资源 | 成人综合国产成人亚洲-日韩精品――中文字幕-伊人中文字幕国产精品-国产精品久久久久久久久人妻 美日韩av在线六区-国产亚洲欧美3p激情av-亚洲欧美变态另类综合-久久久蜜桃激情精品 | 国产一区二区三区四区五区传媒-日韩精品激情在线视频-另类激情亚洲偷窥一区-日韩影音 中文字幕 av 一区 | 91精品国产91久久粉嫩懂色-日韩人妻xxxxx-亚洲天堂色图自拍偷拍-久久久最新网址 | 99日精品视频在线-精品久久久久久999蜜桃婷婷-欧美日韩a级视频-成人久久久国产精品 | 91激情91激情-精品少妇人妻在线一区二区-超碰国产婷婷老熟女伊人-精品一区二区视频在线观看 | 日韩av电影不卡网-欧美日韩经典一区二区三区-亚洲国产精品中文字幕久久-欧美日韩一区二区三区i | 国产aⅴ国产av在在免费线观看-精品乱码一区二区三区视频-中文字幕久久亚洲久久中文字幕-日韩精品视频在线免费观看 | 97碰碰免费公开视频-中文字幕在线三级视频-999久热这里只有精品-91成人精品在线一区二区三区 | 麻豆成人在线网站-久久天天躁狠狠躁夜夜av麻豆-欧美黑人性猛交久久片-av一区二区有限公司 | 欧美激情戏一区二区三区-国产91极品啪啪啪-婷婷三月天激情四射-久久综合色影视电影 | 国产日韩有码中文字幕-99热在线精品自拍-国产一区二区三区蜜桃av-精品乱子伦一区 二区 三区 | 美日韩av在线六区-国产亚洲欧美3p激情av-亚洲欧美变态另类综合-久久久蜜桃激情精品 | 日韩一卡二卡三卡四卡五卡国产精品视频-99干视频在线观看-一本色道久久88综合日韩精品-99热在线观看完整版 | 国产综合精品久久五月天-日日碰狠狠躁久久躁婷婷-国产精品久久久久久成人天天-av中文字幕综合在线网站 | 大白屁股一区二区熟女少妇-国产又粗又长又爽免费-久久思思这里只有精品-av一区二区三区骚 | 国产区一区二区在线观看-欧美日韩中一卡2卡3卡4卡5卡-羞涩色进入亚洲一区二区av-日韩情色精品视频在线 | av一本久久久久久-大屁股熟女少妇一区二区-欧美日韩国产视频网站-国精产品乱码一区一区三区四区 国产99视频精品免视看7-www日韩欧美国产-日韩 欧美一区二区三区在线观看-日韩色美女免费视频 | 97碰碰免费公开视频-中文字幕在线三级视频-999久热这里只有精品-91成人精品在线一区二区三区 | 91免费版下载黄色-五月激情综合俺也去-日本在线高清不卡免v中文字幕-久久久精品亚洲成人av | 亚洲av产在线精品日韩一页-国产成人91亚洲精品-日韩精品情色视频-久久久久久久久人妻一区精品 | 日韩欧美国产中文字幕一级片在线播放-一本色道久久综合亚洲精品蜜桃冫-国产精品久久久久电影网-日韩美在线视频观看 | 人妻被痴汉温泉混浴中文字幕-日韩在线欧美无裤袜-欧美精品乱码99久久蜜桃免费-日韩免费观看一码二码视频在线 | 日韩成人精品在线免费观看-韩日精品 中文字幕-日本中文字幕人妻在线观看-亚洲av色综成人网77777 国产区一区二区三在线-欧美日本亚洲视频二-欧洲欧美一区二区三区-av日韩视频在线观看 | 国产中文字幕在线久久-久久久久久亚洲精品中文字幕熟女-中文字幕在线只有精品-中文字幕久久伊人 国产激情小视频免费看-国产一级片免费看看-精品人妻少妇嫩草av无-亚洲精品少妇人妻 | 日韩成人免费片-色狠久av北条麻妃-久久综合日韩精品-粉嫩小仙女一区二区三区 | 欧美日韩少妇又长又爽视频网-亚洲a在线免费视频-一区二区三区中文字幕人妻-亚洲国产成人一区二区 | 欧美日韩亚洲视频不卡-久久综合色——久久综合色88-久久99中文字幕-日本熟女久久综合 | 日韩精品啪啪视频一道免费-北条麻妃高清中文aⅴ在线-日韩欧美精品网址-999爱精品视频在线 | 91在线观免费观看-日韩欧美人妻中文字幕影院-av在线播放青青草-成人av高清在线区三区二区一 | 91超碰精品日日躁夜夜躁欧美-日韩黄色片二区-99热这里只有精品免费看-狠狠插狠狠干天天干 | 18禁国产麻豆精品久久久久久-超碰人妻av狠狠干-色婷婷综合久久久久久中文-国产av一区二区青青草原 | 国产一区二区在线观看不卡-日韩av岛国在线观看-91极品尤物在线播放国产-性风俗店中文字幕在线视频 | 久久热在线观看免费视频-国产精品99久久久久久夜夜嗨-欧美精品国产白浆久久久久-777色婷婷av一区二区三99 | 搡老女人老91妇女老女人-亚洲精品婷婷色网-丰满人妻一区二区三区人妻-欧美日韩精品成人在线视频 久久精品国产亚洲av四叶草-91九色porny国产探花-91亚洲精品久久久蜜桃借种-欧美里伦久久久久精品 | 大香蕉伊人久久大香蕉-97超碰人人妻-久久久综合网狠狠狠-三级黄,亚洲最大色视频 | 久久久久久十八禁看-久久精品国产亚洲精品2020-成人综合网站色av-久久99久久久久久久噜噜 | 91福利影音最新网址-亚洲欧美日韩av-91久久精品日日]夜夜躁-中文字幕久久网 | 久久综合网五月天高清婷婷熟女-日韩偷拍av网址-日韩av一区二区…-老熟女999国产老熟女精品 | 国产精品久久久久精品艾秋-免费人妻av一区二区三区-久久精品—区二区三区-久久久国产这里有的是 在线日韩制服中文字幕-亚洲欧美日韩顶级片-日韩中文有码免费视频-一区二区三区四区高清av | 国产乱操456在线-丰满的熟妇人妻中文字幕久久-国产伦精品免费视频-久久久亚洲高清av一区二区三区 |