首页 > web前端 > js教程 > 浏览器中的自定义事件:您没有的方便工具知道您需要

浏览器中的自定义事件:您没有的方便工具知道您需要

Susan Sarandon
发布: 2025-01-28 04:33:09
原创
669 人浏览过

Custom Events in the Browser: A Handy Tool You Didn

最近,我发现了自定义浏览器事件的力量 - 我以前从未探索过的一种令人惊讶的方便工具。 您可以创建并触发自己的自定义事件,然后在应用程序中聆听它们。 这打开了有效的沟通可能性。

为什么使用自定义事件?

>

>让我们用一个现实世界的示例说明。我正在使用React开发一个Chrome扩展名,具有多个模块和独立逻辑,其中一些外部React组件(在独立的打字稿文件中)。 我需要一个强大的模块间通信方法。

虽然扩展名的细节是机密的,但请想象汽车制造商(丰田,福特,梅赛德斯)的服务。每个都需要独特的处理,从而产生单独的逻辑文件 - 而不是反应组件。 标准的反应工具,例如

,上下文或redux/mobx不直接适用。

> useState自定义事件提供了解决方案。

>

自定义事件的工作方式

>

>自定义事件让您创建,派遣和聆听事件,传递自定义数据。 核心语法很简单:

>添加侦听器:

<code class="language-javascript">window.addEventListener(type, listener);</code>
登录后复制
:一个case敏感的字符串(事件名称)。
    >
  • type:派遣事件时执行的功能。 可以添加一个可选的
  • 对象(有关详细信息,请参见文档)。
  • > listener options
  • >派遣事件:>

:事件名称(必须匹配

in
<code class="language-javascript">const event = new CustomEvent(eventName, { detail });
window.dispatchEvent(event);</code>
登录后复制
)。
    >
  • eventName:一个包含传递给侦听器的数据的对象。这使自定义事件高度灵活。type addEventListener
  • >现实世界示例:REACT和自定义事件
  • detail在我的Chrome扩展中:

> event侦听器(app.tsx中的useseffect):

>
>派遣事件:
<code class="language-javascript">useEffect(() => {
    const handleCustomEvent = (event: CustomEvent) => {
        console.log(event.detail);
    };

    window.addEventListener(ADD_CUSTOM_EVENT, handleCustomEvent);

    return () => {
        window.removeEventListener(ADD_CUSTOM_EVENT, handleCustomEvent);
    };
}, []);</code>
登录后复制
从任何地方:>
<code>*   `ADD_CUSTOM_EVENT`: A constant (prevents typos).
*   `handleCustomEvent`: Logs the event's `detail` object (in this simplified example).</code>
登录后复制
  1. 为什么我感谢这种方法 >自定义事件为我的扩展程序提供了一种干净,有效的解决方案。 它绕过了对环境或状态管理库等特定于反应的机制的需求,从而为Web应用程序提供了一种简单,优雅的方法来解决复杂的沟通挑战。 我希望这对他人有帮助!
  2. >

以上是浏览器中的自定义事件:您没有的方便工具知道您需要的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板