Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Vue js事件中的名称空间_Javascript_Jquery_Events_Vue.js_Vuejs2 - Fatal编程技术网

Javascript Vue js事件中的名称空间

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,请执行以

是否可以像在JQuery中那样使用带有事件的名称空间

我想我能做到:

$.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的第二个参数传递。