键位编织器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_f1b049da/br20260945。
技能介绍
先解决这三个坑
平时给页面加快捷键,常遇到三类问题:一是全局监听容易在 input/textarea 里误触,用户正在填表单时,按个字母就触发业务功能,直接打断录入;二是组件销毁后没解绑快捷键,导致重复触发或内存泄漏;三是快捷键定义散落在代码里,没有统一流程,改起来要翻遍多个文件。
它的核心工作逻辑
这个技能基于 keycharm 库,把快捷键管理拆成清晰的 keymap → bind → destroy 流程:
- 定义键映射:先梳理好「哪个快捷键对应哪个操作」,比如「临时面板用 Esc 关闭」;
- 绑定事件:在组件
onMounted钩子里调用绑定方法,且默认跳过input/textarea等录入元素; - 销毁绑定:组件卸载前用
onBeforeUnmount调用销毁方法,彻底移除快捷键监听。
适用边界与注意点
有几点硬约束不能碰:
- 必须依赖
keycharm,不要自己写全局监听替代; - 组件销毁必须调
destroy,否则会残留绑定导致重复触发; - 不做「快捷键偏好中心」,不提供用户自定义配置的入口;
- 不能全局抢占录入焦点的快捷键,比如在输入框里按字母触发业务功能。
使用场景
- 列表页需要为“保存”“新建”操作绑定快捷键,避免用户频繁切换鼠标到按钮
- 开发键盘操作Demo时,需要快速绑定快捷键并验证触发逻辑是否符合预期
- 临时面板需要用Esc键快速关闭,且不影响用户在面板内的输入操作
- 表单页面中,需要确保用户在input/textarea里输入时,快捷键不会误触发业务功能
适合人员
- 前端工程师,需要在组件中实现安全的快捷键绑定功能,避免误触和内存泄漏
- 组件库维护者,需要为组件提供标准化的快捷键生命周期管理能力
- 开源项目贡献者,需要在Demo中快速验证键盘交互逻辑的可行性
- 全栈开发者,需要在包含表单的页面中实现不干扰用户输入的快捷键功能