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

91成人在线观看高潮-久久久99视频在线免费观看-91人妻精品一区二区在线看-成人黄色一级片在线观看 | 91精品麻豆91夜夜骚-丰满人妻久久久久久久-国产精品久久久呀-国产伦精区二区三区视频 | 亚洲欧美一二三视频-国产一区二区三区啪在线观看-日韩人妻精品中文字幕在线人妻-国产又粗又硬又猛又黄视频 | 五月婷婷六月丁香亚洲熟女色图-国产精品 中文字幕 有码-丁香花五月婷婷免费视频-av中文字幕在线久久 | 国产传媒麻豆剧精品av国产-中文字幕 尤物视频-日韩,欧美一区二区三区免费-麻豆国产精品久久综合亚洲av | 久久久极品一区二区-99精品人妻一区二区三蜜桃-亚洲av成人波多野一区二区三区-中文字幕人妻中出视频 | 麻豆午夜激情福利-久久久久亚洲中文-色婷婷综合久久久久中文97-日本中文字幕久久精品 | 午夜激情网在线观看-黑人高清视频在线观看-国产精品成人自拍偷拍-国产一区二区三区四区五区六区 999久久九九精品-中文日韩免费码中文在线观看-色一区二区三区欧美-激情五月网婷婷 | 手机看片中文字幕91-亚洲天堂精品久久久久-日韩视频在线播放18-亚洲激情五月天在线观看 | 97久久香蕉国产熟女线看-日韩成人av在线二区-久久主人久久综合久久综合艹尼玛-10国产精品久久久久久 | 天堂网av男人天堂-超碰av在线网站-日韩精品视频在线观看you-久久老司机看片 | 日韩又粗又猛又爽又黄的视频边-日韩 欧美 中文字幕 制服-天天舔天天日天天插-国产又大又长又粗又黄 | 久久久久漂亮女人之一-激情激情激情偷拍偷拍偷拍-嫩草av啪啪自拍-久久久91人妻精品蜜桃 | 91人妻人人澡人人爽人人稍精品-日韩精品深夜久久久久久-久久精品国产亚洲av一卡二卡-久久人妻一区二区三区四区 | 人妻久久久久有码在线观看-777久久人妻少妇嫩草-日韩亚洲av有码-亚洲国产精品成人久久66 | 蜜臀av国内精品久久久久久-91成人免费版在线观看-国产精品96久久久久久吹潮-亚洲国产欧美日韩在线观看第一区 | 久久伊人国产视频-精品人妻久久久久久一区二区三区-97久久久精品综合88久久-2019中文字幕免费在线观看 | 久久精品国产亚洲av四叶草-91九色porny国产探花-91亚洲精品久久久蜜桃借种-欧美里伦久久久久精品 | 五月婷婷丁香六月图片-超碰在线人妻观看-国产一区二区熟女综合-伊人久久大香线蕉av一区 | 2020免费中文字幕在线观看-好看不卡的中文字幕-蜜桃视频一区二区三区四区av-91人人妻操人妻 | 久久资源一区二区三区-中文字幕日本人妻系列-国产精品性生活视频-成人ⅴ视频无遮挡羞羞免费 | 婷婷丁香久久五月综合-69久久夜色精品国产-中文字幕组第一页麻豆-亚洲va欧美va国产综合888 | 人妻中文字幕频道-日本人妻久久久久-中文字幕日韩影视-69久久久久久视频 | 成人综合国产成人亚洲-日韩精品――中文字幕-伊人中文字幕国产精品-国产精品久久久久久久久人妻 美日韩av在线六区-国产亚洲欧美3p激情av-亚洲欧美变态另类综合-久久久蜜桃激情精品 | 一区二区三区四区日韩久久-久久精品视频在线看24-国产精品嫩草久久久久久久-日韩精品你懂的视频 亚洲成人av夜夜骚-精品伦一区二区三区视频-日韩欧美p片内射在线观看视频-九九99久久精品在免费线 | 2019年中文字幕在线-久久久久久精品91-丰满人妻一区二区三区精品av-天堂在线 中文字幕 | 国产日本久久中文字幕-中文字幕成人免费观看-91久久精品国产原创91久久-99精品视频在线观看视频在线 | 99久久精品人妻一区二区三区-超碰在线视频免费97-在线免费观看在线免费观看av-精品日本一区二区三区免费 | 亚洲天堂男人网亚洲天堂女人网-亚洲精品久久中文字幕xx-久久久久久久精美人妻-国产激情黑人91蜜 天天操天天干天天日天天操-人妻少妇久久久一区二区三区-日韩男女三级视频-国产又粗又猛又爽又黄的黄牛视频 | 性色av一区二区三区在线-日韩欧美久久久免费精品-欧美 日韩 激情 在线-久久久久亚洲av成人网人人网站 | 日韩a级视频在线影视-日本精品中文字幕一区-麻豆精品国产91久久久久-婷婷色综合国产精品 | 麻豆人妻换人妻同学会-2020最新亚洲中文字幕在线不卡-精品久久久久,69国产成人精-av天堂中文最新版 | 国产精品久久久18禁成人-成人av婷婷一区二区三区-在线免费观看中文字幕第一页-91在线精品一区二区三区 | 激情五月中文字幕在线-日韩精品人妻中文字幕不卡-国产资源在线播放6-精品久久中文字幕版 | 久久99国产精品久久久久-人妻丰满熟姓av在线播放-久久久久亚洲欧美另类-日韩av中文字幕有码在线观看 | 97久久 中文字幕-亚洲精品在线中文字幕-91精品国产99久久久久久久-日韩激情av在线 | 99精品久久99久久久久一-日韩三级a视频在线观看-国产精品99精品免费视频-日日夜夜有免费视频观看 | 国产又大又长又粗又硬视频-青草精品视频在线中文字幕-麻豆综合视频在线观看-99热这里只有精品9999 | 久久久亚洲毛片大全-婷婷在线播放av-欧美日韩字幕天堂中文-手机看片日韩福利盒子 | 久久亚洲一区视频-欧美日韩亚洲熟女第一页-成人免费91在线观看-成人三级网站在线观看 | 久久久人妻碰碰碰禁片-久热99re视频在线-91视视频在线观看入口直接观看-国产精品久久久久久五月天 |