什么是 @funjs/emitter
@funjs/emitter 是一个简单但功能强大的事件触发器,使用它可以很容易地在 JavaScript 应用程序中实现事件监听与响应。
如何安装
@funjs/emitter 可以通过 npm 安装。在命令行中输入:
npm install @funjs/emitter --save
如何使用
创建实例
在使用 @funjs/emitter 之前,我们需要先创建一个事件触发器的实例。可以使用以下代码示例来创建实例:
import { Emitter } from '@funjs/emitter'; const emitter = new Emitter();
监听事件
接下来,我们可以使用 on()
方法监听事件。例如:
emitter.on('click', (e) => { console.log('click event triggered with', e); });
可以发现,on()
方法接收两个参数:事件类型和事件回调函数。当事件被触发时,回调函数会被执行。
触发事件
我们可以使用 emit()
方法来触发一个指定类型的事件,例如:
emitter.emit('click', { message: 'hello world' });
可以发现,emit()
方法接收两个参数:事件类型和事件参数。以上述示例为例,emit()
方法将触发一个 'click'
事件,并且传递一个包含 { message: 'hello world' }
的对象作为事件参数。
取消监听
如果我们想要取消一个已经注册的事件监听器,可以使用 off()
方法。例如:
const handler = (e) => { console.log('click event triggered with', e); }; emitter.on('click', handler); emitter.off('click', handler);
可以发现,off()
方法的参数与 on()
方法相同,用来指定事件类型和对应的回调函数,即可取消该事件处理函数的绑定。
一次性事件监听
有时候,我们可能只需要监听某个事件的一次触发,此时可以使用 once()
方法来注册一个一次性事件监听器,例如:
emitter.once('click', (e) => { console.log('click event triggered with', e); });
与 on()
方法类似,once()
方法接收两个参数:事件类型和事件回调函数,但与 on()
方法不同的是,once()
方法注册的事件监听器会在第一次事件触发后立即被取消,不会继续监听该事件。
示例代码
-- -------------------- ---- ------- ------ - ------- - ---- ----------------- -- ---- ----- ------- - --- ---------- -- ---- ----- -- ------------------- --- -- - ------------------ ----- --------- ------ --- --- -- -- ----- -- --------------------- - -------- ------ ------ --- -- -------- ----- ------- - --- -- - ------------------ ----- --------- ------ --- -- ------------------- --------- -------------------- --------- -- ------- --------------------- --- -- - ------------------ ----- --------- ------ --- --- -- -- ----- ---------- --------------------- - -------- ------ ------ ---
以上示例代码可以直接在浏览器的控制台中运行,并在结果面板中查看输出结果。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600668e4d9381d61a3540a7f