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

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

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

發(fā)布時(shí)間:2025-11-08 文章來(lái)源:本站  瀏覽次數(shù):426
在 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)器,因此若僅需在組件銷(xiāo)毀時(shí)移除,無(wú)需手動(dòng)調(diào)用 $off。但如果組件未銷(xiāo)毀(如隱藏而非銷(xiāo)毀),則需手動(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(除非組件未銷(xiāo)毀);
  4. 區(qū)分組件實(shí)例事件($on / $off)和 DOM 事件(addEventListener / removeEventListener)。

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

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

国产99久9在线视频-日韩中文字幕一级黄片免费看-黑人中文字幕在线观看-国产精品久久精品免费 | 蜜臀久久99精品久久久久久久情-五月婷婷色伊人-侵犯人妻一区二区中文字幕-96人妻精品一区二区在线看 | 欧美日韩中文字幕精品加勒比-久热精品视频在线播放-成人免费在线观看视频网站-欧美国产日韩高清在线综合 | 欧美日韩极品人妻专区-中文字幕婷婷综合-麻豆国产精品一二三免费-91精品麻豆国产自产在线观看 | 天天日天天弄天天干b-有码中文字幕av-日韩aⅴ一区二区三区四区-日韩极品美女狠狠操 | 国产一区二区三区激情视频-天天干天天日天天操天天日-91大神唐先生1080p在线-日韩精品视频亚洲在线 | 精品久久久久久久一区二区8-激情五月综合aⅴ在线-97久久精品人人爽人人爽蜜臀-国产一区二区三区视频在线免费播放 | 精品人妻午夜一区二区三区在线观看-丰满大屁股人妻少妇-久久免费电影精品偷拍视频-中文日韩人妻丝袜 | av中文字幕在线观看在线-久久久久精品国产乱码78m-国产麻豆剧传媒精品国产av吴梦-69中文字幕一区二区三区 | 精品一区二区视频一-国产人妖一区二区av-日韩变态深喉口爆图片-国产乱色乱子伦一区二区三区 | 97超碰中文字幕总站-欧美精品熟妇视频-蜜桃av鲁一鲁一鲁一鲁一区二区三区-日韩情色偷拍自拍 | 人人妻人人澡人人爽欧美一区双-久久综合久久97综合-中国男人和东欧女人把逼操-久久人人超碰精品蜜臀 | 99热国产在线精品视频-97精品国产97久久久免费-日韩熟女高潮一区二区-日韩av不卡免费在线观看 | 日韩专区欧美专区第十页-91精品久久久久久婷婷高清-999精品视频免费观看-日韩三级小视频在线观看 | 超碰在线免费资源-国产熟女乱淫一区二区-国产精品久久久久久久久白浆-熟女av在线一区 | 精品丰满熟女少妇一区二区蜜桃-亚洲av欧美av色婷婷伊人-日韩色婷婷中文字幕-超91麻豆精品国产高清在线观看 | 激情六月天亚洲婷婷-国产精品麻豆午夜在线-国产成人综合精品99久久久久-成人精品国产亚洲av久久 国产又大又长又粗又硬视频-青草精品视频在线中文字幕-麻豆综合视频在线观看-99热这里只有精品9999 | 91精品国产久久久久久久久久-日韩激情啪啪啪-大香蕉大香蕉大香蕉大香蕉大香蕉-91久免费精品国产 日韩av欧美一区-日本久久综合久久-好好干天天日狠狠操-日本久久精品久久 | 亚洲中文字幕人妻.-日韩在线视频免费播放一区二区-日韩av在线观看电影-少妇人妻精品一区二区三 | eeuss丝袜诱惑-巨乳美女中出免费看-五月天中文字幕婷婷-五月婷婷六月丁香首页 | 久久精品国产99久久3d动漫-日韩精品中文字幕xxxxxx-国产在线观看黄色片-国产成人av综合久久蜜臀 欧美日韩亚洲视频不卡-久久综合色——久久综合色88-久久99中文字幕-日本熟女久久综合 | 热99在线播放视频-国产69式一区二区三区四区五区-国产精品99久久久久久.....-日韩一级大片在线播放 | 99热国产在线精品视频-97精品国产97久久久免费-日韩熟女高潮一区二区-日韩av不卡免费在线观看 | 91精品国产综合久久久久久婷婷-久久久亚洲精品三级-日韩激情久久五月天-日韩中文人妻av | 18禁国产一区二区在线看-亚洲国产精品久久久久婷婷884-日韩va欧美激情-日韩aⅴ视频在线播放 | 久久男人的天堂网站-精品人妻一区二区三区四-日韩精品欧美第一页-91久视频在线播放 | 99久久久国产精品免费蜜臀-91超碰国产在线百斩-欧美日韩一级片在线看-国产精品 中文字幕 制服诱惑 | 麻豆免费在线观看高清视频-日本中文字幕在线观看电影-日韩情趣视频在线观看-成人激情av在线免费观看 | 99久久精品国产高清毛片-欧美日韩在线视频中文字幕-国产成人亚洲综合精品-亚洲久久久久久一二三区丝袜 | 亚洲天堂性天堂网站-97碰碰免费视频公开-久久久亚洲熟妇熟女内射一区-精品人妻伦一区二区三区 | 国产又粗又长又大又黄又爽的视频-日韩爱爱特级视频中文字幕-国产综合精品91老熟女的胸胸-女同精品一区二区三区在线 | 91黄色免费版下载-91精品久久久久久久新-成人中文字幕av在线-久久久久久精品一区二区蜜桃 | 一本色道久久亚洲综合精品蜜桃-久久久久久久三级黄色片-久久久久久不射-欲色av蜜臀av性色av三级 999精品视频观看-六月色婷婷丁香在线-日韩高清在线观看中文字幕-久久偷拍美女上厕所 | 18国产精品久久久久久-天天爽天天摸天天做-五月六月丁香婷婷综合-99久久亚洲新视频 | 日韩熟妇中文字幕-国产欧美亚洲一区二区-少妇毛片一区二区三区色哟哟-91人妻丝袜美腿一区二区 | 熟女阿一区二区三区四区视频-91久久国语露脸精品国产高跟-国产精品久久久成人999-国产91精品啪 | 校园春色人妻少妇中文字幕-中文字幕日韩制服丝袜-欧美不卡一区二区三-久久久成人国产精品 | 91精品国产91久久久久久最新-久久美剧在线观看-91免费看欧美-中文字幕一区二区三区三区 | 日韩av成人一区二区三区-欧美熟妇久久精品-日韩成人在线免费精品视频-久久久精品国产亚洲综合久久久国产 | 91麻豆国产精品91久久久久久久-麻豆精品最新国产在线-色99免费在线视频-久久久中文字幕中文字幕性 | 久久 中文字幕 亚洲-国产又粗又硬又爽又黄毛片-日韩中文字幕熟妇人妻在线-日韩四级片地址 |