最近,我发现了自定义浏览器事件的力量 - 我以前从未探索过的一种令人惊讶的方便工具。 您可以创建并触发自己的自定义事件,然后在应用程序中聆听它们。 这打开了有效的沟通可能性。
为什么使用自定义事件?
虽然扩展名的细节是机密的,但请想象汽车制造商(丰田,福特,梅赛德斯)的服务。每个都需要独特的处理,从而产生单独的逻辑文件 - 而不是反应组件。 标准的反应工具,例如
,上下文或redux/mobx不直接适用。>
useState
自定义事件提供了解决方案。
自定义事件的工作方式
>
<code class="language-javascript">window.addEventListener(type, listener);</code>
type
:派遣事件时执行的功能。 可以添加一个可选的listener
options
:事件名称(必须匹配
in<code class="language-javascript">const event = new CustomEvent(eventName, { detail }); window.dispatchEvent(event);</code>
eventName
:一个包含传递给侦听器的数据的对象。这使自定义事件高度灵活。type
addEventListener
detail
在我的Chrome扩展中:<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>
以上是浏览器中的自定义事件:您没有的方便工具知道您需要的详细内容。更多信息请关注PHP中文网其他相关文章!