Javascript Vue js事件中的名称空间
是否可以像在JQuery中那样使用带有事件的名称空间 我想我能做到:Javascript Vue js事件中的名称空间,javascript,jquery,events,vue.js,vuejs2,Javascript,Jquery,Events,Vue.js,Vuejs2,是否可以像在JQuery中那样使用带有事件的名称空间 我想我能做到: $.on('click.namespace') $.on('change.namespace') $.off('.namespace') // unregister both 否,在Vue中通常不需要: 在模板中使用@eventName=“handler”时,Vue处理事件处理程序的注册和注销 由于您可以指定组件($emits)事件的名称,因此不会发生命名冲突 要在组件销毁时手动注册和注销eventlistener,请执行以
$.on('click.namespace')
$.on('change.namespace')
$.off('.namespace') // unregister both
否,在Vue中通常不需要: 在模板中使用
@eventName=“handler”
时,Vue处理事件处理程序的注册和注销
由于您可以指定组件($emit
s)事件的名称,因此不会发生命名冲突
要在组件销毁时手动注册和注销eventlistener,请执行以下操作:
emitter.$on(component.handleClick)
component.$on("$destroy", () => emitter.$off('click', component.handleClick))
在
方法:
中声明handleClick,该方法创建绑定到组件的唯一回调。事件名称只是字符串,因此理论上可以在示例中设置时执行。然而,取消设置需要更多的工作,您可能会将事件存储在数组或对象中,然后循环它们以获得$。off callI不知道为什么这是必要的吗?这看起来像是一个事件总线或Vuex之类的东西。你需要找到一个提供此功能的第三方库,比如我自己的(MIT),当然这是必要的。我有不同的模块,它们连接在相同的事件上。我没有办法在模块被销毁时注销它的处理程序,因为$off会注销它们。我没有在模板BTWI中使用事件如果您将唯一回调传递给on,那么您可以取消注册该特定回调,如果您将其作为调用$off的第二个参数传递。