$on $off $emit
时间: 2023-08-26 20:18:34 浏览: 100
在Vue中,$on、$off、$emit是一些用于组件间通信的方法。可以通过使用$bus实例来传递非父子组件之间的数据。比如,使用$emit方法发送事件,使用$on方法监听事件,使用$off方法移除事件的绑定。
在子组件中,可以通过this.$bus.$emit(eventName, payload)来触发一个事件并传递数据。比如子组件1可以使用this.$bus.$emit("hello", param)来触发名为"hello"的事件,并将param作为数据传递。
在组件中,可以使用this.$bus.$on(eventName, callback)来监听一个事件。当触发了该事件时,绑定的回调函数将被调用。比如在子组件中可以使用this.$on('closeModal', res => {})来监听名为"closeModal"的事件。
同时,也可以使用this.$bus.$off(eventName)来移除绑定的事件。比如在组件销毁前,可以使用this.$off("closeModal")来移除对"closeModal"事件的监听。
通过使用$on、$off、$emit这些方法,可以方便地在Vue组件间进行通信和数据传递。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [vue中$bus的用法及$emit、$on、$off的使用](https://blog.csdn.net/leijie0322/article/details/128210817)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *2* [vue中$emit跟$on,$off跟用法](https://blog.csdn.net/Billow_lamb/article/details/115007731)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *3* [$emit,$on,$off--vue](https://blog.csdn.net/weixin_57844432/article/details/126599659)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
[ .reference_list ]
阅读全文