本篇文章给大家带来的内容是关于有命名空间的事件监听器nsevent的详细介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
这个模块主要的原因是用在微信开发时候监听两个页面之间的状态交互
比如 pageA 和 pageB 两个页面, pageA 页面有收藏项 pageB 也有同样的收藏项,监听同一个事件
// 收藏事件改变nsevent.on('collectChange', () => { // 刷新列表数据})
登录后复制
那么在 pageA 页面操作 collect(收藏) 事件会触发自身页面 collectChange 回调,这时候nsevent就派上用场,
在 pageA 这样声明
// 收藏事件改变nsevent.on('collectChange', () => { // 刷新列表数据}, 'pageA')
登录后复制
在 pageB 触发 pageA 的事件,就不会触发自身页面的回调了
// 触发collectChange事件NSEvent.emit('collectChange', params, { ns: ['pageA'] });
登录后复制
还可以在 pageC 触发 pageA, pageB页面的 collectChange 事件
// 触发collectChange事件NSEvent.emit('collectChange', params, { ns: ['pageA', 'pageB'] });
登录后复制
nsevent document
有命名空间的事件监听器 – event emitter with namespace
安装和使用
npm i nsevent --save
登录后复制
const nsevent = require('nsevent');
登录后复制
// 浏览器
登录后复制
on(eventName, fn, namespace)
参数 必选 说明eventName是监听事件名fn是回调函数namespace否命名空间
NSEvent.on('add', (a, b) => { console.log(a, b);});NSEvent.on('add', (a, b) => { console.log(a, b, 'ns');}, 'ns');// 1, 2// 1, 2, 'ns'NSEvent.emit('add', a, b);
登录后复制
once(eventName, fn)
参数 必选 说明eventName是监听事件名fn是回调函数
NSEvent.once('add', (a, b) => { console.log(a, b);});NSEvent.emit('add', 1, 2); // 1, 2NSEvent.emit('add', 1, 2); // nothing
登录后复制
emit(eventName, arg1, arg2, …, object)
参数 必选 说明eventName是监听事件名arg[1,2,3…]否传递给回调函数的值object否{ 最后一个传递对象,ns: [‘ns’] } 可以指定命名空间触发事件
NSEvent.on('fire', () => { console.log('fire ns');}, 'ns');NSEvent.on('fire', () => { console.log('fire ns2');}, 'ns');NSEvent.on('fire', () => { console.log('fire');});NSEvent.emit('fire'); // fire ns, fire ns2, fireconsole.log("======");NSEvent.emit('fire', 1, 2, { ns: [] }); // nothingNSEvent.emit('fire', 1, 2, { ns: ['ns'] }); // fire ns, fire ns2
登录后复制
off(eventName, [string|function|array])
参数 必选 说明eventName是监听事件名
stringfunctionarray否解绑回调函数
string指定命名空间解绑
function指定函数解绑
array通过数组指定命名空间或者函数解绑
const NSEvent = require('../dist/nsevent.cjs');NSEvent.on('fire', () => { console.log('fire ns');}, 'ns');NSEvent.on('fire', () => { console.log('fire ns');}, 'ns');NSEvent.on('fire', () => { console.log('fire1');}, 'ns1');NSEvent.emit('fire'); // fire ns, fire ns, fire1console.log('==========');NSEvent.off('fire', ['ns']);NSEvent.emit('fire'); // fire1console.log('==========');NSEvent.off('fire', 'ns1');NSEvent.emit('fire'); // none
登录后复制
以上就是有命名空间的事件监听器nsevent的详细介绍(代码示例)的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2734580.html