@bigbinary/neeto-hotkeys

中文文档
1.0.9发布于 2024/11/22ISCTypeScriptESM + CJS零依赖近 30 天下载 3.8万

处理键盘快捷键的回放钩子,提供自定义和平台意识的解决方案,支持全局和范围模式.

中文使用文档
文档目录4 节
  1. 安装
  2. 认为 useHotKeys 钩子接受 :
  3. 返回值:
  4. 用法 :

@ bigbinary/ neto- hotkeys (英语)

这个 neeto-hotkeys 软件包提供 useHotKeys 钩子,多功能工具 用于管理应用程序中的热键。 此勾钩允许您定义特定 hotkey组合并与之关联到相应的处理器功能. 这个 按下所配置的热键时会引用相关处理器, 启用 来执行响应键盘输入的动作.

安装

yarn add @bigbinary/neeto-hotkeys

认为 useHotKeys 钩子接受 :

  • hotkey: 指定要收听的热键的字符串 。 热键可以是 以三种格式定义: sequential, (中文(简体) ), simultaneous 打开 single。 。 。 .

    1. 序列:由空格分隔出的任何密钥都被认为是相继的. 这个 当用户按顺序按下密钥时,会引用处理器。 对于 实例, s r 表示当用户按 s 随后是 r 页:1 相应 handler 将被援引.
    2. 同时:同步热键要求所有指定的键是 同时按下以触发处理器. 譬如说, command+shift+r 意思是当 command, (中文(简体) ), shift, (中文(简体) ), r 正在按下时间 同时,将援引处理器.
    3. 单身: 如名称所示,这意味着单键,如 r , (中文(简体) ), k, (中文(简体) ), return 包括: 无论何时 r 按下它相应的处理器 电话.

    热键应该使用 MacOS 格式, 钩子会处理转换 到用户平台(例如:命令 - > ctrl for windows).

    如果我们想把多把热键绑在同一个处理器上 我们可以用一个 像这样的阵列 useHotkeys(['a', 'b'], handler)。 。 。 .

  • handler:按下热键时应当引用的函数.

    Handler 会收到原始密钥 event。这可以用来阻止 这样的默认浏览器动作 event.preventDefault()。 。 。 .

  • config: 具有3个属性的配置对象 mode, (中文(简体) ), unbindOnUnmount 打开 enabled。 。 。 .

    1. 模式 : 模式可用值为 default, (中文(简体) ), global 打开 scoped。 。 。 .
      • 默认: 这是默认模式 。 只有在 用户在文本区域、输入或选择元素之外.
      • 环球: 即使用户在内部形式元素中, 处理器也会被发射 像文本区.
      • 范围:用于范围化热键到DOM元素。 你用得着 如果您想要引用处理器, 只有在用户是 聚焦于特定 div, (中文(简体) ), button, (中文(简体) ), textarea 诸如来. 当这个 模式将设置钩子返回 a ref,你需要附加这个 ref 以到您需要瞄准热键的元素.
    2. 取消对 UnbidOnUnmount : 默认值为 true。如果你不想要一个 当某个组件被卸载时, 处理器将未注册, 然后设置 值为 false。 。 。 .
    3. 启用:默认其值为 true。设定为 false 将 不注册热键.
    4. 文档:这是可选属性。 如果你想听热闹 在外部文档(例如iframe)上,通过该引用 文档使用 document 属性 config 对象。 如果你这样做 不提供此属性, 钩子会听取当前热键 默认文档.

返回值:

  • inputRef页:1 ref 需要附加在输入元素上的 听从.

用法 :

以下说明使用 useHotKeys 连接执行快捷键 为侧边栏打开.

import useHotKeys from "@bigbinary/neeto-hotkeys";

// openSidebar function will only be called if the user is focused inside the textarea and performs the key combination.
const ref = useHotKeys("command+shift+r", openSidebar, {
  mode: "scoped",
});

return (
  <div>
    <div>Hello world</div>
    <textarea ref={ref}></textarea>
  </div>
);

Hotkey是许多应用程序的一个基本方面,提高了用户效率 和互动。 用HotKeys钩简化了这些工具的执行 通过允许您指定不同格式的热键组合, 相关处理器,和配置选项.

版本与发布记录

@bigbinary/neeto-hotkeys 共发布 9 个版本,首次发布于 2023/12/05;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.0.9latest2024/11/222 年前
1.0.82024/11/212 年前
1.0.72024/08/092 年前
1.0.62024/07/162 年前
1.0.52024/06/262 年前
1.0.42024/03/142 年前

关于 @bigbinary/neeto-hotkeys 的常见问题

@bigbinary/neeto-hotkeys 是什么?

处理键盘快捷键的回放钩子,提供自定义和平台意识的解决方案,支持全局和范围模式.

如何安装 @bigbinary/neeto-hotkeys?

在项目目录运行 npm install @bigbinary/neeto-hotkeys,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@bigbinary/neeto-cist(latest)、@bigbinary/neeto-commons-frontend(latest)、ramda(^0.29.1)、react(^18.2.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@bigbinary/neeto-hotkeys 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@bigbinary/neeto-hotkeys 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@bigbinary/neeto-hotkeys 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=18.12。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@bigbinary/neeto-hotkeys 可以商用吗?

@bigbinary/neeto-hotkeys 使用 ISC 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@bigbinary/neeto-hotkeys 的下载量有多少?

根据 npm 官方下载统计,@bigbinary/neeto-hotkeys 在 2026/10/08 – 2026/11/06 这 30 天内被下载 37,561 次,日均约 1,252 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@bigbinary/neeto-hotkeys 还在维护吗?

最新版本 1.0.9 发布于 2024/11/22(2 年前);至今共发布 9 个版本,其中过去 12 个月发布了 0 个;首次发布于 2023/12/05。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。