首页 > 解决方案 > Vue js 事件中的命名空间

问题描述

是否可以像在 JQuery 中那样拥有带有事件的命名空间?

喜欢能够做到:

$.on('click.namespace')
$.on('change.namespace')
$.off('.namespace') // unregister both

标签: javascriptjqueryeventsvue.jsvuejs2

解决方案


,在 Vue 中通常不需要:

在模板中使用@eventName="handler"时,Vue 处理事件处理程序的注册和注销。

并且因为您可以指定组件的事件名称,所以$emit您不会有命名冲突。

在组件被销毁时手动注册和注销事件监听器:

emitter.$on(component.handleClick)
component.$on("$destroy", () => emitter.$off('click', component.handleClick))

methods:在创建绑定到组件的唯一回调中声明 handleClick 。


推荐阅读