Skip to main content

Module event_listener

Module event_listener 

Source
Expand description

通用 DOM 事件监听 Hook(add/remove_event_listener 生命周期封装)。 通用 DOM 事件监听 hook:封装 add/remove_event_listener 生命周期。

use_hook 持有 (Closure, target)use_effect 注册,use_drop 清理, 把 theme/footer 两处手写的样板收口到一处。非 wasm32 目标下整体编译为空操作 (SSR 无 DOM),调用方无需再写占位变量或 #[cfg]

设计要点:

  • target 通过一个初始化闭包 acquire 提供,在 use_effect 首次运行时调用 (此时 DOM 一定可用);这样调用方无需自己再包一层 use_effect
  • event 要求 &'static str,add 与 remove 复用同一字符串字面量。
  • handler 是 FnMut()(无参);若调用方需要 target 信息(如 media.matches()), 应在 acquire 里 clone 一份后 move 进 handler。

Functions§

use_event_listener
非 wasm 占位:SSR 无 DOM,编译为空操作。